2012-11-02 16 views
5

मुझे सरल अद्यतन क्वेरी के साथ कोई समस्या है जो हमेशा मेरी mysql-slow-query.log तालिका में दिखाई देता है और यह केवल 3021 rows होता है।MySQL में सरल अद्यतन क्वेरी एक लंबा समय लेती है

क्वेरी लगता है:

UPDATE 'address' 
SET 'user' = 1013 
WHERE 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

Query_time: २.६,६४,४१३ Lock_time: .०,००,०४३ Rows_sent: 0 Rows_examined: 1

जब मैं के साथ इस क्वेरी examinate:

select 'user' = 1013 
from 'address' 
where 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

तो बहुत तेजी से दिखता है 1 row in set (0.00 sec)

यह आसान अद्यतन क्वेरी इतनी देर क्यों लेती है? इसे कैसे ठीक करें?

+0

क्या आपके पास टेबल पर सेट कोई इंडेक्स है? इंडेक्स नकारात्मक रूप से क्वेरी पर अपडेट प्रदर्शन गति को प्रभावित कर सकते हैं भले ही वे 'चयन' क्वेरी को तेज करते हैं। – Ren

+0

@Ren इस तालिका पर कोई अनुक्रमणिका नहीं है, आईडी पर केवल 1 प्राथमिक कुंजी है। – stefek143

+0

चूंकि ये प्रश्न एकल-उद्धृत सब कुछ होने के कारण थोड़ा सा समझ में आता है, इसलिए मुझे लगता है कि आप वास्तव में उन्हें कुछ क्लाइंट भाषा के साथ उत्पन्न कर रहे हैं और यह एसक्यूएल कोड है * लगता है * यह वास्तव में चल रहा है। मेरी सलाह दोबारा जांचना है: 1) जेनरेट किया गया एसक्यूएल कोड क्या है 2) एसक्यूएल कैसे बाहर चलाता है (v.g. अपने पसंदीदा MySQL क्लाइंट से)। –

उत्तर

1

पहले जांचें कि आपकी तालिका क्रैश नहीं हुई है,
यदि यह आपकी तालिका की मरम्मत कर रहा है।

दूसरा उन दो फ़ील्ड को इंडेक्स करने का प्रयास करें जहां क्लॉज

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