2009-06-19 16 views
7

किसी को भी मुझे बता सकते हैं MySQL में बेहतर appraoch whin यह एक तालिका के पंक्ति संख्या खोजने के लिए आता है जिसमें उन्होंने: यहMySQL में किसी तालिका के लिए पंक्ति गणना प्राप्त करना?

SELECT COUNT(*) FROM TABLE_NAME 

करने के लिए या में तालिका TABLE में पंक्ति गणना को देखने के लिए बेहतर है INFORMATION_SCHEMA?

यह पृष्ठों के लिए पेजिनेशन गणना की गणना के लिए लगातार संचालन होगा?

मुझे यह जोड़ना चाहिए कि अधिकांश तालिकाओं में केवल कुछ हज़ार पंक्तियां होंगी।

धन्यवाद

मार्टिन ओ'शेआ।

+0

कुछ हज़ार पंक्तियों के लिए गिनती का चयन करें (*) लगभग तत्काल काम करेगा। – Hardwareguy

उत्तर

18

MyISAM में, इस प्रश्न: के बाद से यह तालिका मेटाडाटा में रखा जाता है

SELECT COUNT(*) 
FROM TABLE_NAME 

, त्वरित है, इसलिए यह इस प्रश्न के जारी करने के लिए लगभग मुफ़्त है और यह हमेशा सही परिणाम मिल जाएगा।

InnoDB में, यह क्वेरी पंक्तियों को एक-एक करके गिनती है जिसमें कुछ समय लग सकता है।

तो यदि आपको COUNT(*) के सटीक मूल्य की आवश्यकता नहीं है, तो आप INFORMATION_SCHEMA से पूछ सकते हैं।

+1

मुझे लगता है कि मुझे पंक्ति गणना/पेजिनेशन गिनती का उपयोग करके पेजिनेशन की गणना करने की आवश्यकता है, इनो डीडी टेबल पर INFORMATION_SCHEMA का सबसे अच्छा तरीका है। गिनती केवल मिलीसेकंड लेगी, लेकिन यह अभी भी एक ओवरहेड है यदि कई उपयोगकर्ता ब्राउजिंग के लिए एक ही टेबल तक पहुंच रहे हैं। –

+0

@ मार्टिनोशिआ: बिल्कुल – Quassnoi

+0

आपकी मदद के लिए धन्यवाद। –

1

यदि आप COUNT(*) बहुत धीमे पाते हैं तो मैं SQL_CALC_FOUND_ROWS और SELECT FOUND_ROWS() का उपयोग करने पर विचार करता हूं।

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