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

टेबल छोड़ने से MySQL हैंग हो जाता है

Waiting for table metadata lock
drop table tableA name

SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10

अगर यह आपकी तालिका है, तो यह लिंक देखें

आपके पास एक निहित गतिरोध है। ड्रॉप जारी करने के लिए अन्य लेनदेन को समाप्त करें, या अन्य लेनदेन को जारी करने के लिए ड्रॉप को समाप्त करें।

आप KILL का उपयोग कर सकते हैं थ्रेड_आईडी, sql_plus में।

एक और दिलचस्प अनुभव के साथ आने के बाद से मैं और जानकारी जोड़ रहा हूँ।

Metadata किसी दिए गए टेबल पर डीडीएल ऑपरेशन के बीच डेड लॉक समान रूप से हो सकता है (drop , alter ...) और एक चुनें उस टेबल पर क्वेरी।

हां, select .

इसलिए, यदि आप mysql (या php, उदाहरण के लिए pdo::fetch के साथ कर्सर पर लूप करते हैं ), और आप एक ही टेबल पर एक डीडीएल स्टेटमेंट चलाते हैं, तो आपको एक गतिरोध मिलेगा।

इस असामान्य परिदृश्य का एक समाधान निहित ताले को commit . के साथ जारी करना है किसी भी चुनिंदा स्टेटमेंट को पूरी तरह से प्राप्त करने के बाद व्यवस्थित रूप से स्टेटमेंट।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या mysql_free_result($result) का उपयोग करना एक अच्छा अभ्यास है?

  2. PHP और MySQL के बीच दिनांक स्वरूप अंतर को प्रबंधित करना

  3. mysql-अजगर स्थापित करें (विंडोज़)

  4. PHP 5.4 PDO पुराने असुरक्षित प्रमाणीकरण का उपयोग करके MySQL 4.1+ से कनेक्ट नहीं हो सका

  5. MySQL:ऐसी पंक्तियाँ ढूँढना जो किसी रिश्ते में भाग नहीं लेती हैं