MySQL實現(xiàn)查詢數(shù)據(jù)庫表記錄數(shù)
前言:
mysql統(tǒng)計一個數(shù)據(jù)庫里所有表的數(shù)據(jù)量,最近在做統(tǒng)計想查找一個數(shù)據(jù)庫里基本所有的表數(shù)據(jù)量,數(shù)據(jù)量少的通過select count再加起來也是可以的,不過表的數(shù)據(jù)有點多,不可能一個一個地查。記得在Navicat里,選擇一個數(shù)據(jù)量,點擊表,如圖:

那么如何通過sql實現(xiàn)呢?在mysql里是可以查詢information_schema.tables這張表的
SELECT table_rows,table_name FROM information_schema.tables
WHERE TABLE_SCHEMA = '數(shù)據(jù)庫名稱'
and table_name not in ('不查詢的表名稱')
ORDER BY table_rows DESC;OK,本來還以為已經(jīng)沒問題了,然后還是被反饋統(tǒng)計不對,后來去找了資料說是對于MyISAM才是正確的統(tǒng)計數(shù)據(jù),但是對于InnoDB引擎的,可能與實際值相差 40% 到 50%,所以只是一個大概的統(tǒng)計所以針對這種情況,要更改存儲引擎,肯定是不太合適,因為InnoDB是默認的存儲引擎,能支持事務外健,并發(fā)情況性能也比較好。繼續(xù)找資料,正確的sql如下:
select table_schema as '數(shù)據(jù)庫', table_name as '表名', table_rows as '記錄數(shù)', truncate(data_length/1024/1024, 2) as '數(shù)據(jù)容量(MB)', truncate(index_length/1024/1024, 2) as '索引容量(MB)' from information_schema.tables where table_schema='test' order by table_rows desc, index_length desc;
查詢結(jié)果如下:

到此這篇關于MySQL實現(xiàn)查詢數(shù)據(jù)庫表記錄數(shù)的文章就介紹到這了,更多相關MySQL查詢表記錄數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql中一個普通ERROR 1135 (HY000)錯誤引發(fā)的血案
ERROR 1135 (HY000): Can’t create a new thread (errno 11);if you are not out of available memory,you can consult the manual for a possible OS-dependent bug2015-08-08
mysql優(yōu)化連接數(shù)防止訪問量過高的方法
這篇文章主要介紹了mysql優(yōu)化連接數(shù)防止訪問量過高的方法,需要的朋友可以參考下2014-06-06

