Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैं कैसे पता लगा सकता हूं कि कौन सा लेनदेन तालिका मेटाडेटा लॉक स्थिति की प्रतीक्षा कर रहा है?

MySQL संस्करण के लिए काम करता है <5.7.3

SHOW ENGINE INNODB STATUS \G

अनुभाग देखें -

TRANSACTIONS

हम INFORMATION_SCHEMA . का उपयोग कर सकते हैं टेबल्स।

उपयोगी प्रश्न

सभी ताले के बारे में जाँच करने के लिए लेन-देन की प्रतीक्षा कर रहे हैं:

USE INFORMATION_SCHEMA;
SELECT * FROM INNODB_LOCK_WAITS;

अवरुद्ध लेनदेन की सूची:

SELECT * 
FROM INNODB_LOCKS 
WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID FROM INNODB_LOCK_WAITS);

या

SELECT INNODB_LOCKS.* 
FROM INNODB_LOCKS
JOIN INNODB_LOCK_WAITS
  ON (INNODB_LOCKS.LOCK_TRX_ID = INNODB_LOCK_WAITS.BLOCKING_TRX_ID);

विशेष टेबल पर ताले की सूची:

SELECT * FROM INNODB_LOCKS 
WHERE LOCK_TABLE = db_name.table_name;

लेन-देन की सूची जो ताले की प्रतीक्षा कर रही है:

SELECT TRX_ID, TRX_REQUESTED_LOCK_ID, TRX_MYSQL_THREAD_ID, TRX_QUERY
FROM INNODB_TRX
WHERE TRX_STATE = 'LOCK WAIT';

संदर्भ - MySQL समस्या निवारण:जब प्रश्न काम न करें तो क्या करें , अध्याय 6 - पृष्ठ 96.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक परिणामसेट लौटाना

  2. MySQL कार्यक्षेत्र क्या है?

  3. मैं विंडोज़ पर पायथन 3 में MySQL से कैसे जुड़ सकता हूं?

  4. बेस्ट मैच द्वारा MySQL ऑर्डर

  5. MySQL क्रॉस सर्वर क्वेरी का चयन करें