如果使用mysql的版本在5.0及以上,可以通過查詢information_schema庫中的tables表來擷取,該表中使用table_rows記錄表的行數資訊。例如查看庫testdb中所有表的記錄數:
代碼如下 |
複製代碼 |
use information_schema; select table_name,table_rows from tables where TABLE_SCHEMA = 'testdb' order by table_rows desc; |
不過需要注意的是,對於InnoDB表,table_rows行計數僅是大概估計值。
另外一種辦法還是藉助information_schema庫的tables表,來拼接出一個條sql語句,例如:
代碼如下 |
複製代碼 |
use information_schema; select concat( 'select "', TABLE_name, '", count(*) from ', TABLE_SCHEMA, '.', TABLE_name, ' union all' ) from tables where TABLE_SCHEMA='testdb'; |
記錄一下mysql中查看所有表的記錄數:
TABLE_SCHEMA : 資料庫名
TABLE_NAME:表名
ENGINE:所使用的儲存引擎
TABLES_ROWS:記錄數
DATA_LENGTH:資料大小 得到的結果是以位元組為單位,除1024為K,除1048576(=1024*1024)為M
INDEX_LENGTH:索引大小
代碼如下 |
複製代碼 |
use information_schema; select table_schema,table_name,table_rows from tables order by table_rows desc;
|
查看指定資料庫大小:
代碼如下 |
複製代碼 |
SELECT sum(DATA_LENGTH)+sum(INDEX_LENGTH) FROM information_schema.TABLES where TABLE_SCHEMA='資料庫名';
|
得到的結果是以位元組為單位,除1024為K,除1048576(=1024*1024)為M