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

MySQL में सभी डेडलॉक लॉग कैसे प्रदर्शित करें?


InnoDB डेडलॉक लॉगिंग सक्षम करना और देखना

सबसे पहले, innodb_print_all_deadlocks को सक्षम करने की आवश्यकता है:

SET GLOBAL innodb_print_all_deadlocks = 1;

उपरोक्त स्टेटमेंट निष्पादित करने के बाद, सभी डेडलॉक लॉग प्रदर्शित करने के लिए निम्नलिखित सिंटैक्स निष्पादित करें:

SHOW ENGINE INNODB STATUS;

कार्यान्वयन

mysql> SET GLOBAL innodb_print_all_deadlocks = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW ENGINE INNODB STATUS;

आउटपुट (संक्षिप्त):

+--------+------+-------------------------------------------------------------------+
| Type   | Name | Status                                                            |
+--------+------+-------------------------------------------------------------------+
| InnoDB |      | =====================================                             |
|        |      | 2019-05-03 16:44:53 0xf9c INNODB MONITOR OUTPUT ===================================== |
|        |      | Per second averages calculated from the last 26 seconds          |
|        |      | ----------------- BACKGROUND THREAD -----------------             |
|        |      | ... (विस्तृत InnoDB मॉनिटर आउटपुट जिसमें डेडलॉक जानकारी शामिल है) ... |
|        |      | ---------------------------- END OF INNODB MONITOR OUTPUT ======= |
+--------+------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

महत्वपूर्ण बिंदु:

  • innodb_print_all_deadlocks=1 सभी डेडलॉक को InnoDB मॉनिटर आउटपुट में प्रिंट करता है।
  • SHOW ENGINE INNODB STATUS वर्तमान InnoDB स्थिति दिखाता है जिसमें हाल के डेडलॉक शामिल होते हैं।
  • यह सेटिंग ग्लोबल है और MySQL रीस्टार्ट के बाद रीसेट हो जाती है। स्थायी बनाने के लिए कॉन्फ़िगरेशन फ़ाइल में जोड़ें।

  1. - MySQL में सभी कॉलम मानों को कॉमा से अलग करके एक ही पंक्ति में प्रदर्शित करें?

    इसके लिए GROUP_CONCAT() और CONCAT() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1807 ( Id int ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1807 values(101); Query OK, 1 row affected

  1. - MySQL में टेबल के सभी फील्ड/कॉलम कैसे प्रदर्शित करें?

    MySQL में किसी टेबल के सभी कॉलम (फील्ड) की सूची प्राप्त करने के लिए, INFORMATION_SCHEMA.COLUMNS टेबल को क्वेरी करें जहां table_schema वर्तमान डेटाबेस हो और table_name लक्ष्य टेबल हो। यह DESCRIBE या SHOW COLUMNS का प्रोग्रामेटिक विकल्प है। क्वेरी mysql> SELECT column_name AS ALL_FIELDS FROM infor

  1. - MySQL में UPDATE और SUBSTRING_INDEX से स्लैश से पहले का भाग रखकर कॉलम अपडेट करें

    SUBSTRING_INDEX() फ़ंक्शन SUBSTRING_INDEX(str, delim, count) डिलीमीटर के आधार पर उपस्ट्रिंग निकालता है। 0: बाएं से count-वां डिलीमीटर से पहले का भाग। count < 0: दाएं से |count|-वां डिलीमीटर के बाद का भाग। उदाहरण insert into demo69 values(John/Smith), (David/Miller), (Chris/Brown), (Carol/Taylo