উত্তর:
COUNT(1), এটি দ্রুততম উপায়।
কারণ এটির কথা কেউ উল্লেখ করেনি:
show table status;
প্রতিটি টেবিলের জন্য আনুমানিক সারি সহ কিছু অতিরিক্ত তথ্যের সাথে সমস্ত সারণী তালিকাবদ্ধ করে। এটিই phpMyAdmin তার ডাটাবেস পৃষ্ঠার জন্য ব্যবহার করছে।
এই তথ্যটি মাইএসকিউএল 4 এ উপলব্ধ, সম্ভবত মাইএসকিউএল 3.23 এ রয়েছে - দীর্ঘ সময়ের পূর্বের তথ্য স্কিমা ডাটাবেস।
ডাউন-ভোট ছিল বলে, আমি স্পষ্ট করে বলতে চাই যে প্রদর্শিত নম্বরটি ইনোডিবি এবং টোকুডিবির জন্য অনুমান করা হয়েছে এবং এটি মাইএসএএম এবং আরিয়া (মারিয়া) স্টোরেজ ইঞ্জিনগুলির জন্য একেবারে সঠিক।
ডকুমেন্টেশন প্রতি :
সারি সংখ্যা। কিছু স্টোরেজ ইঞ্জিন যেমন মাইআইএসএএম, সঠিক গণনা সঞ্চয় করে। অন্যান্য স্টোরেজ ইঞ্জিনগুলির জন্য যেমন ইনোডিবি, এই মানটি একটি আনুমানিক হয় এবং আসল মান থেকে 40% থেকে 50% পর্যন্ত পরিবর্তিত হতে পারে। এই জাতীয় ক্ষেত্রে, একটি সঠিক গণনা পেতে নির্বাচন নির্বাচন করুন (*)।
এটি মাইএসকিউএল-এ সারি গণনা দেখার দ্রুততম উপায়, কারণ কোয়েরির মতো:
select count(*) from table;
সম্পূর্ণ টেবিল স্ক্যান করা যা খুব ব্যয়বহুল অপারেশন হতে পারে যা বড় উচ্চ লোড সার্ভারে কয়েক ঘন্টা সময় নিতে পারে। এটি ডিস্ক I / O বৃদ্ধি করে।
একই ক্রিয়াকলাপটি সন্নিবেশ এবং আপডেটের জন্য টেবিলটিকে ব্লক করতে পারে - এটি কেবল বিদেশী স্টোরেজ ইঞ্জিনগুলিতে ঘটে।
InnoDB এবং TokuDB টেবিল লক সহ ঠিক আছে, তবে পূর্ণ টেবিল স্ক্যান প্রয়োজন।
Table টেবিলটিতে কোনও selectকোয়েরি না চালিয়ে একটি সারণীতে সারিগুলির সংখ্যা বের করার আমাদের অন্য উপায় রয়েছে have
প্রতিটি মাইএসকিউএল ইনস্ট্যান্সে তথ্য_স্কেমা ডাটাবেস থাকে। আপনি যদি নিম্নলিখিত জিজ্ঞাসাটি চালনা করেন তবে এটি সারণিতে সারিগুলির আনুমানিক সংখ্যা সহ টেবিল সম্পর্কে সম্পূর্ণ বিবরণ দেবে ।
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.4 সে থেকে 0.0001 মিমি অবধি
tablename