Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

क्या MySQL का SLEEP() फ़ंक्शन बिजी-वेट है? इसे कैसे लागू करें?

MySQL SLEEP() फ़ंक्शन: बिजी-वेट नहीं, बल्कि कुशल विलंब

नहीं, MySQL का SLEEP() फ़ंक्शन बिजी-वेट (busy-wait) नहीं है। यह CPU साइकिल बर्बाद किए बिना निर्दिष्ट सेकंड के लिए कनेक्शन को सस्पेंड कर देता है।

उदाहरण के साथ कार्यान्वयन

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100));

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable VALUES('John'), ('Adam'), ('Bob'), ('Chris'), ('Robert');

SLEEP() फ़ंक्शन के साथ SELECT क्वेरी

mysql> SELECT SLEEP(10), FirstName FROM DemoTable;

आउटपुट:

+-----------+-----------+
| SLEEP(10) | FirstName |
+-----------+-----------+
| 0         | John      |
| 0         | Adam      |
| 0         | Bob       |
| 0         | Chris     |
| 0         | Robert    |
+-----------+-----------+
5 rows in set (50.00 sec)

महत्वपूर्ण अवलोकन:

  • कुल निष्पादन समय: 50 सेकंड (5 पंक्तियाँ × 10 सेकंड प्रत्येक)
  • SLEEP(10) प्रत्येक पंक्ति के लिए 10 सेकंड रुकता है
  • परिणाम कॉलम में हमेशा 0 लौटाता है (सफल समाप्ति दर्शाता है)
  • यह CPU-इंटेंसिव बिजी लूप नहीं है; यह OS-लेवल स्लीप का उपयोग करता है

व्यावहारिक उपयोग के मामले

  • क्वेरी निष्पादन में कृत्रिम विलंब जोड़ना (टेस्टिंग के लिए)
  • रेट लिमिटिंग या थ्रॉटलिंग लागू करना
  • डेडलॉक परिदृश्यों का अनुकरण करना
  • बेंचमार्किंग और प्रदर्शन परीक्षण

नोट: उत्पादन वातावरण में SLEEP() का अत्यधिक उपयोग कनेक्शन पूल को ब्लॉक कर सकता है और समग्र प्रदर्शन को प्रभावित कर सकता है।

  1. - MySQL में HAVING LENGTH() का उपयोग कैसे करें?

    GROUP BY के साथ HAVING LENGTH() फिल्टर MySQL में ग्रुपिंग के बाद टेक्स्ट कॉलम की लंबाई के आधार पर ग्रुप्स को फिल्टर करने के लिए HAVING LENGTH() का उपयोग करें। टेबल बनाना और डेटा इन्सर्ट करना CREATE TABLE DemoTable (Title TEXT); INSERT INTO DemoTable VALUES(Introduction to MySQL); INSERT INTO DemoT

  1. - किसी भी MySQL टेबल में CANDIDATE KEY कैसे लागू करें

    UNIQUE KEY प्रतिबंध के साथ उम्मीदवार कुंजी लागू करना प्रत्येक संबंध में एक या अधिक उम्मीदवार कुंजी हो सकती है। इनमें से एक उम्मीदवार कुंजी को प्राथमिक कुंजी कहा जाता है। प्रत्येक उम्मीदवार कुंजी प्राथमिक कुंजी के लिए योग्य होती है। इसलिए, प्राथमिक कुंजी के उम्मीदवारों को उम्मीदवार कुंजी कहा जाता है।

  1. - MySQL स्टोर्ड प्रोसीजर में शर्तों (IF-ELSE) को सही तरीके से कैसे लागू करें?

    MySQL स्टोर्ड प्रोसीजर में सशर्त तर्क (Conditional Logic) लागू करने के लिए IF-THEN-ELSE स्टेटमेंट का उपयोग किया जाता है। सही सिंटैक्स और डिलिमिटर का ध्यान रखना महत्वपूर्ण है। सही सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name(IN param_name INT) BEGIN IF condition THEN statement1;