欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表的數(shù)據(jù)量

 更新時(shí)間:2022年04月15日 14:46:41   作者:smileNicky  
最近在做統(tǒng)計(jì)想查找一個(gè)數(shù)據(jù)庫里基本所有的表數(shù)據(jù)量,下面這篇文章主要給大家介紹了關(guān)于MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表的數(shù)據(jù)量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

場景:

mysql統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫里所有表的數(shù)據(jù)量,最近在做統(tǒng)計(jì)想查找一個(gè)數(shù)據(jù)庫里基本所有的表數(shù)據(jù)量,數(shù)據(jù)量少的通過select count再加起來也是可以的,不過表的數(shù)據(jù)有點(diǎn)多,不可能一個(gè)一個(gè)地查

記得在Navicat里,選擇一個(gè)數(shù)據(jù)量,點(diǎn)擊表,如圖:

是可以看到所有表具體的數(shù)據(jù)行的

然后可以通過sql實(shí)現(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;

要統(tǒng)計(jì)的,加上sum函數(shù)就可以

SELECT sum(table_rows) FROM information_schema.tables  
 WHERE TABLE_SCHEMA = '數(shù)據(jù)庫名稱' 
 and table_name not in ('不查詢的表名稱') 
 ORDER BY table_rows DESC;

OK,本來還以為已經(jīng)沒問題了,然后還是被反饋統(tǒng)計(jì)不對,后來去找了資料

https://dev.mysql.com/doc/refman/8.0/en/information-schema-tables-table.html

官網(wǎng)的解釋:

TABLE_ROWS
The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40% to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.
TABLE_ROWS is NULL for INFORMATION_SCHEMA tables.
For InnoDB tables, the row count is only a rough estimate used in SQL optimization. (This is also true if the InnoDB table is partitioned.)

大概意思是對于MyISAM才是正確的統(tǒng)計(jì)數(shù)據(jù),但是對于InnoDB引擎的,可能與實(shí)際值相差 40% 到 50%,所以只是一個(gè)大概的統(tǒng)計(jì)

所以針對這種情況,要更改存儲(chǔ)引擎,肯定是不太合適,因?yàn)镮nnoDB是默認(rèn)的存儲(chǔ)引擎,能支持事務(wù)外健,并發(fā)情況性能也比較好

所以,根據(jù)網(wǎng)上的做法,重新analyze 對應(yīng)表,在mysql8.0版本是不管用的,發(fā)現(xiàn)查詢數(shù)據(jù)還是不對,估計(jì)是mysql版本太高,mysql5版本沒驗(yàn)證過

analyze table [table_name]

繼續(xù)找資料,在Navicat工具->命令行頁面,設(shè)置全局或者回話的information_schema_stats_expiry為0,表示自動(dòng)更新,設(shè)置全局的不知道會(huì)不會(huì)影響性能,所以不知道還是設(shè)置會(huì)話的就可以

SET SESSION information_schema_stats_expiry=0;
SET @@SESSION.information_schema_stats_expiry=0;

查詢設(shè)置的information_schema_stats_expiry值

show variables like '%information_schema_stats%';

MySQL 8.0為了提高information_schema的查詢效率,會(huì)將視圖tables和statistics里面的統(tǒng)計(jì)信息緩存起來,緩存過期時(shí)間由參數(shù)information_schema_stats_expiry決定

補(bǔ)充:查詢表大小

我需要查詢的庫名為:kite

因此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='kite'
order by table_rows desc, index_length desc;

結(jié)果如下:

總結(jié) 

到此這篇關(guān)于MySQL如何統(tǒng)計(jì)一個(gè)數(shù)據(jù)庫所有表數(shù)據(jù)量的文章就介紹到這了,更多相關(guān)MySQL統(tǒng)計(jì)所有表數(shù)據(jù)量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL深分頁問題原理與三種解決方案

    MySQL深分頁問題原理與三種解決方案

    本文主要介紹了MySql深分頁問題原理與解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 基于mysql查詢語句的使用詳解

    基于mysql查詢語句的使用詳解

    本篇文章是對mysql查詢語句的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • MySQL如何為表和字段取別名詳解

    MySQL如何為表和字段取別名詳解

    在SQL語句中,可以為表名稱及字段(列)名稱指定別名(Alias),別名是SQL標(biāo)準(zhǔn)語法,幾乎所有的數(shù)據(jù)庫系統(tǒng)都支持,下面這篇文章主要給大家介紹了關(guān)于MySQL如何為表和字段取別名的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • mysql的登陸和退出命令格式

    mysql的登陸和退出命令格式

    這篇文章主要介紹了mysql的登陸和退出命令格式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • mysql5.7中的密碼忘記如何找回

    mysql5.7中的密碼忘記如何找回

    這篇文章主要介紹了mysql5.7中的密碼忘記如何找回問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • MySQL子查詢操作實(shí)例詳解

    MySQL子查詢操作實(shí)例詳解

    這篇文章主要介紹了MySQL子查詢操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql表的創(chuàng)建、常見子查詢運(yùn)算與關(guān)鍵字使用技巧,需要的朋友可以參考下
    2018-06-06
  • MySQL筆記之修改數(shù)據(jù)的解決方法

    MySQL筆記之修改數(shù)據(jù)的解決方法

    本篇文章介紹了,在mysql中修改數(shù)據(jù)的解決方法。需要的朋友參考下
    2013-05-05
  • MySQL入門教程(七)之視圖

    MySQL入門教程(七)之視圖

    視圖是從一個(gè)或多個(gè)表中導(dǎo)出來的虛擬表。視圖就像一個(gè)窗口,通過這個(gè)窗口可以看到系統(tǒng)專門提供的數(shù)據(jù)。本文給大家介紹MySQL入門教程(七)之視圖,需要的朋友參考下
    2016-04-04
  • 快速解決mysql深分頁問題

    快速解決mysql深分頁問題

    這篇文章主要介紹了優(yōu)雅地解決mysql深分頁問題,本文將會(huì)討論當(dāng)mysql表大數(shù)據(jù)量的情況,如何優(yōu)化深分頁問題,并附上最近的優(yōu)化慢sql問題的案例偽代碼,需要的朋友可以參考下
    2022-07-07
  • MySQL關(guān)聯(lián)查詢優(yōu)化實(shí)現(xiàn)方法詳解

    MySQL關(guān)聯(lián)查詢優(yōu)化實(shí)現(xiàn)方法詳解

    在數(shù)據(jù)庫的設(shè)計(jì)中, 我們通常都是會(huì)有很多張表 , 通過表與表之間的關(guān)系建立我們想要的數(shù)據(jù)關(guān)系, 所以在多張表的前提下, 多表的關(guān)聯(lián)查詢就尤為重要,這篇文章主要介紹了MySQL關(guān)聯(lián)查詢優(yōu)化
    2022-11-11

最新評論