2012-07-11 14 views
5

मैं जानना चाहता हूं कि हम पृष्ठभूमि में एसक्यूएल क्वेरी कैसे चला सकते हैं ... मेरे पास एक बड़ी क्वेरी है जो मुझे इतना समय ले रही है कि मैं पृष्ठभूमि के रूप में इसे चलाने के लिए चाहता हूं ताकि मेरा पेज लोड हो रहा हो कम होगा ..हम पृष्ठभूमि में एसक्यूएल क्वेरी कैसे चला सकते हैं

+0

चेक http://stackoverflow.com/questions/60878/priority-of-a-query-in-ms-sql – Sliq

उत्तर

3

क्रॉन का उपयोग करके PHP स्क्रिप्ट में क्वेरी चलाएं और परिणाम कैश करें।

2

कुछ समाधान यहां http://dev.mysql.com/doc/refman/5.0/en/table-locking.html और यहां http://dev.mysql.com/doc/refman/5.5/en/insert.html हैं।

आधिकारिक mySQL साइट का कहना है:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [INTO] tbl_name [(col_name,...)] 
{VALUES | VALUE} ({expr | DEFAULT},...),(...),... 

तो कोई वास्तविक उपयोग के मामले की तरह

INSERT LOW_PRIORITY INTO tablename (column1,column2) VALUES ("hello","you"); 
2

लगेगा मैं क्रॉन और कैश दृष्टिकोण सुझाव है, या AJAX के उपयोग को लागू।

सीआरओएन और कैश के साथ, अपनी क्वेरी चलाएं, फिर इसे क्रमबद्ध करें और इसे स्वच्छता के लिए फ़ाइल में सहेजें। आवश्यकता होने पर कॉल करें और अनसुलझा करें।

AJAX के साथ, जब आपका पृष्ठ लोड होता है, तो उस फ़ाइल को कॉल करें जो क्वेरी निष्पादित करता है और देता है। इस तरह, आप एक प्रतीक्षा संकेतक प्रदर्शित कर सकते हैं जबकि आपका सर्वर क्वेरी चलाता है और वे एक दूसरे से अलग होते हैं।

3

आप AJAX के साथ अलग-अलग स्क्रिप्ट में अपने प्रश्नों को कॉल कर सकते हैं। जब पृष्ठ का अनुरोध किया जाता है, तो पीएचपी को सामान्य के रूप में संसाधित करें, पृष्ठ को विज़िटर को भेजें और भेजें, और तुरंत एक AJAX स्क्रिप्ट को एक और PHP स्क्रिप्ट का अनुरोध करें जो धीमी क्वेरी निष्पादित करता है। क्वेरी चलने के दौरान पृष्ठ लोड हो जाएगा, और जब आप अपनी क्वेरी से परिणाम वापस प्राप्त करेंगे, तो परिणामों को शामिल करने के लिए एक छोटी जावास्क्रिप्ट का उपयोग करें। यहां लाभ यह है कि जब पृष्ठ लोड हो रहा है क्वेरी चल रही है, तो आप दोनों एक साथ कर रहे हैं।

अपनी क्वेरी को अनुकूलित करने और यह सुनिश्चित करने के लिए कि आपने क्वेरी को तेज़ करने के लिए अपनी तालिकाओं पर एक इंडेक्स सेट किया है, देखें।

+0

thanks..I द्वारा यह ट्रिगर कर सकते हैं मैं इस तरह सोच रहा हूं ... –

+0

यह उन प्रश्नों का समाधान नहीं होगा जो आप हमेशा निष्पादित करना चाहते हैं। क्या होता है यदि उपयोगकर्ता जावास्क्रिप्ट को अक्षम करता है या ब्राउज़र का उपयोग करता है जो जावास्क्रिप्ट का समर्थन नहीं करता है? – nonybrighto

+0

नहीं, यह धीमी गति से चलने वाले "पृष्ठभूमि" अनुरोध का समाधान है। यदि आप इसे तुरंत करना चाहते हैं, तो एक अलग एंडपॉइंट मारा। हम दो अलग-अलग चीजों के बारे में बात कर रहे हैं। चूंकि जावास्क्रिप्ट को अक्षम करने के लिए, आपको शायद उपयोगकर्ता को सूचित करना होगा कि उनकी पसंद के कारण वे कार्यक्षमता खो चुके हैं। कुछ परिष्कार के साथ एक वेबपैड, सर्वर पर चलने वाले प्रश्नों की तरह, उपयोगकर्ता कुछ और करता है, या तो जावास्क्रिप्ट होने जा रहा है या उपयोगकर्ता को रीफ्रेश करने की आवश्यकता है और यह देखने के लिए कि क्या क्वेरी की गई है या नहीं। पूर्ण कार्यक्षमता प्राप्त करने के लिए जावास्क्रिप्ट को एक आवश्यकता बनाने में कुछ भी गलत नहीं है। –

0

अपनी PHP फ़ाइल में क्वेरी लिखें और इसे चलाने के लिए समय या समय अंतराल पर शेड्यूल करें। linux अनुसूची CRON या Windows उपयोग Task Scheduler वरना लिए आप Ajax अनुरोध

संबंधित मुद्दे