जवाबों:
SELECT COUNT(*) FROM fooTable;
तालिका में पंक्तियों की संख्या की गणना करेगा।
संदर्भ पुस्तिका देखें ।
COUNT(1)
, यह सबसे तेज़ तरीका होगा।
क्योंकि किसी ने इसका उल्लेख नहीं किया:
show table status;
प्रत्येक तालिका के लिए अनुमानित पंक्तियों सहित कुछ अतिरिक्त जानकारी के साथ सभी तालिकाओं को सूचीबद्ध करता है। यह वही है जो phpMyAdmin अपने डेटाबेस पेज के लिए उपयोग कर रहा है।
यह जानकारी MySQL 4 में उपलब्ध है, शायद MySQL 3.23 में भी - लंबे समय पूर्व सूचना स्कीमा डेटाबेस में।
क्योंकि डाउन-वोट था, मैं स्पष्ट करना चाहता हूं कि दिखाया गया नंबर इनोबीडी और टोकुबीडी के लिए अनुमानित है और यह MyISAM और आरिया (मारिया) भंडारण इंजनों के लिए बिल्कुल सही है।
प्रति प्रलेखन :
पंक्तियों की संख्या। कुछ संग्रहण इंजन, जैसे कि MyISAM, सटीक गणना को संग्रहीत करते हैं। अन्य भंडारण इंजनों के लिए, जैसे कि InnoDB, यह मान एक सन्निकटन है, और वास्तविक मूल्य से 40% से 50% तक भिन्न हो सकता है। ऐसे मामलों में, सटीक गिनती प्राप्त करने के लिए SELECT COUNT (*) का उपयोग करें।
यह MySQL पर पंक्ति गणना देखने का सबसे तेज़ तरीका है, क्योंकि क्वेरी जैसे:
select count(*) from table;
पूर्ण तालिका स्कैन करना बहुत महंगा ऑपरेशन हो सकता है जो बड़े उच्च लोड सर्वर पर घंटों लग सकता है। यह डिस्क I / O को भी बढ़ाता है।
एक ही ऑपरेशन आवेषण और अपडेट के लिए तालिका को अवरुद्ध कर सकता है - यह केवल विदेशी भंडारण इंजन पर होता है।
InnoDB और TokuDB टेबल लॉक के साथ ठीक हैं, लेकिन पूर्ण टेबल स्कैन की आवश्यकता है।
हमारे पास select
उस तालिका में क्वेरी को चलाए बिना किसी तालिका में पंक्तियों की संख्या जानने का एक और तरीका है ।
हर MySQL उदाहरण में info_schema डेटाबेस है। यदि आप निम्नलिखित क्वेरी चलाते हैं, तो यह तालिका के बारे में संपूर्ण विवरण देगा, जिसमें उस तालिका में पंक्तियों की अनुमानित संख्या भी शामिल होगी ।
select * from information_schema.TABLES where table_name = 'table_name'\G
सीधे शब्दों में:
SELECT COUNT(*) FROM `tablename`
select count(*) from YourTable
यदि आपकी तालिका में कई फ़ील्ड हैं और आपकी तालिका बहुत बड़ी है, तो इसका उपयोग बेहतर नहीं है*
क्योंकि यह सभी फ़ील्ड्स को मेमोरी में लोड करता है और निम्नलिखित का उपयोग करने से बेहतर प्रदर्शन होगा
SELECT COUNT(1) FROM fooTable;
जैसा कि संतोष ने उल्लेख किया है , मुझे लगता है कि सभी तालिका को क्वेरी नहीं करते हुए यह क्वेरी काफी तेजी से है।
किसी विशेष डेटाबेस में विशिष्ट टैबलेन के लिए, डेटा रिकॉर्ड की संख्या का पूर्णांक परिणाम वापस करने के लिए :
select TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = 'database'
AND table_name='tablename';
count(*)
प्रदर्शन जागरूकता के साथ सटीक गणना का उपयोग करना चाहते हैं, तो इसका बहुत स्पष्ट जवाब है
$sql="SELECT count(*) as toplam FROM wp_postmeta WHERE meta_key='ICERIK' AND post_id=".$id;
$total = 0;
$sqls = mysql_query($sql,$conn);
if ( $sqls ) {
$total = mysql_result($sqls, 0);
};
echo "Total:".$total;`
यदि आपके पास एक प्राथमिक कुंजी या एक अद्वितीय कुंजी / सूचकांक है, तो तेज़ विधि संभव है (4 लाख पंक्ति तालिकाओं के साथ परीक्षण किया गया)
SHOW INDEXES FROM "database.tablename" WHERE Key_Name=\"PRIMARY\"
और फिर कार्डिनैलिटी फ़ील्ड प्राप्त करें (यह तत्काल के करीब है)
टाइम्स जहां 0.4s से 0.0001ms तक है
tablename