php检测表大小,查询mysql数据库、表的大小
一、關于mysql表數據大小
mysql存儲數據文件一般使用表空間存儲 ;
當mysql使用innodb存儲引擎的時候,mysql使用表存儲數據分為共享表空間和獨享表空間兩種方式 。共享表空間:Innodb的所有數據保存在一個單獨的表空間里面,而這個表空間可以由很多個文件組成,一個表可以跨多個文件存在,?所以其大小限制不再是文件大小的限制,而是其自身的限制 ,?innodb官方顯示表空間的最大限制為64TB ;
獨享表空間:每個表的數據以一個單獨的文件來存放,這個時候的單表限制,又變成文件系統的大小限制了
在默認情況下,MySQL創建的MyISAM表允許的最大尺寸為4GB 。
二、關于show table stauts;中顯示內容的解釋
Data_length 表中數據的大小
Index_length 表的索引的大小
Data_free 表空間的大小
data_Free :如果是共享表空間 data_free 是共享表空間的大小而非數據的大小。
如果是獨享表空間才是該表的剩余空間。
如果表是分區存儲的,data_free 就是一個近似值而非精確值所以此時需要查詢 ,查看INFORMATION_SCHEMA.PARTITIONS表?可以查看表具有哪幾個分區、分區的方法、分區中數據的記錄數等重要信息:select sum(data_free) from information_schema.partitions where table_schema = 'db_name' and table_name='tab_name';
三、查詢數據大小
1. 查詢所有數據庫的大小
select concat(round(sum(data_length/1024/1024),2),'MB') as data from information_schema.tables;
2. 查詢指定庫的大小
select concat(round(sum(data_length/1024/1024),2),'MB') as data from information_schema.tables where table_schema='database_name';
3.? 查詢指定表的大小
select concat(round(sum(data_length/1024/1024),2),'MB') as data from information_schema.tables where table_schema='database_name' and table_name='table_name';
四、information_schema庫
在mysql中有一個information_schema數據庫,這個數據庫中裝的是mysql的元數據,包括數據庫信息、數據庫中表的信息等。所以要想查詢數據庫占用磁盤的空間大小可以通
過對information_schema數據庫進行操作。
information_schema中的表主要有:
schemata表:這個表里面主要是存儲在mysql中的所有的數據庫的信息
tables表:這個表里存儲了所有數據庫中的表的信息,包括每個表有多少個列等信息。
columns表:這個表存儲了所有表中的表字段信息。
statistics表:存儲了表中索引的信息。
user_privileges表:存儲了用戶的權限信息。
schema_privileges表:存儲了數據庫權限。
table_privileges表:存儲了表的權限。
column_privileges表:存儲了列的權限信息。
character_sets表:存儲了mysql可以用的字符集的信息。
collations表:提供各個字符集的對照信息。
collation_character_set_applicability表:相當于collations表和character_sets表的前兩個字段的一個對比,記錄了字符集之間的對照信息。
table_constraints表:這個表主要是用于記錄表的描述存在約束的表和約束類型。
key_column_usage表:記錄具有約束的列。
routines表:記錄了存儲過程和函數的信息,不包含自定義的過程或函數信息。
views表:記錄了視圖信息,需要有show view權限。
triggers表:存儲了觸發器的信息,需要有super權限。
總結
以上是生活随笔為你收集整理的php检测表大小,查询mysql数据库、表的大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于计算机和人物的英语短文,人脑和电脑英
- 下一篇: 近五年计算机网络技术的发展,计算机网络技