因為對元數據(元數據就是那些關於如何數據庫的那些數據)的使用已經變得愈來愈普遍了,MySQL5在產品中也相應地設計了一個專門的數據庫,這個數據庫的固定名稱就是information_schema,該數據庫作為一個中心數據字典的角色出現,其中包含了數據庫的所有對象信息和其他與數據庫相關的項目(比如安全),這些對象等信息都在MySQL服務器產品中做了定 義。數據庫管理人員和相關開發人員可以使用information_schema數據字典數據庫來獲得MySQL服務器上一個或多個數據 庫相關的多方面的元數據。
舉例說明,如果數據庫管理人員想要知道某個MySQL數據庫實例中存儲空間的概況,那麼可以通過執行如下的對數據字典的查詢來實現:
mysql> SELECT a.schema_name db_name, -> IFNULL(ROUND((SUM(b.data_length)+SUM(b.index_length))/1024/1024,2),0.00) -> total_size_mb, -> IFNULL(ROUND(((SUM(b.data_length)+SUM(b.index_length))- -> SUM(b.data_free))/1024/1024,2),0.00) data_used_mb, -> IFNULL(ROUND(SUM(data_free)/1024/1024,2),0.00) data_free_mb, -> IFNULL(ROUND((((SUM(b.data_length)+SUM(b.index_length))-SUM(b.data_free))/ -> ((SUM(b.data_length)+SUM(b.index_length)))*100),2),0) pct_used, -> COUNT(table_name) tables -> FROM information_schema.schemata a -> LEFT JOIN information_schema.tables b ON a.schema_name = b.table_schema -> WHERE a.schema_name != 'information_schema' -> GROUP BY a.schema_name -> ORDER BY 1; +---------+---------------+--------------+--------------+----------+--------+ | db_name | total_size_mb | data_used_mb | data_free_mb | pct_used | tables | +---------+---------------+--------------+--------------+----------+--------+ | gim | 432.67 | 432.67 | 0.00 | 100.00 | 16 | | gim2 | 8.64 | 8.64 | 0.00 | 100.00 | 6 | | mysql | 0.33 | 0.33 | 0.00 | 99.69 | 18 | | test | 0.00 | 0.00 | 0.00 | 0.00 | 0 | | tpcc | 126.09 | 126.09 | 0.00 | 100.00 | 9 | +---------+---------------+--------------+--------------+----------+--------+注意上面的示例中,應該設為不查詢字典數據庫自身,通過where條件語句來實現。(BKJIA.COM教程)