翻譯|使用教程|編輯:莫成敏|2019-10-11 11:44:13.237|閱讀 1438 次
概述:每個MySQL實例中都有一個INFORMATION_SCHEMA。它包含幾個只讀表,您可以查詢這些表以獲得所需的信息。在今天的文章中,我們將探討INFORMATION_SCHEMA的一些實際用法,例如使用Navicat Premium。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Navicat Premium 是一套數據庫管理工具,讓你使用一個程序即可同時連接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 數據庫。快速管理不同類型的數據庫。
在關系數據庫中,數據庫元數據(例如有關MySQL服務器的信息、數據庫或表的名稱、列的數據類型或訪問特權)存儲在數據字典和/或系統目錄中。MySQL在名為INFORMATION_SCHEMA的特殊模式中提供數據庫元數據。每個MySQL實例中都有一個INFORMATION_SCHEMA。它包含幾個只讀表,您可以查詢這些表以獲得所需的信息。在今天的文章中,我們將探討INFORMATION_SCHEMA的一些實際用法,例如使用Navicat Premium。
獲取表信息
information_schema.tables表包含有關表的元數據,您猜對了!除了表名之外,您還可以檢索其類型(基本表或視圖)和引擎:
SELECT table_name, table_type, engine FROM information_schema.tables WHERE table_schema = 'sakila' ORDER BY table_name;
這是上面的查詢和Navicat的結果:
您還可以查詢information_schema.tables以獲取表的大小:
SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "sakila" AND table_name = "film";
以下是Navicat Premium的結果:
通過一些調整,您可以列出每個數據庫中每個表的大小:
SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES ORDER BY (data_length + index_length) DESC;
您甚至可以使用information_schema.tables列出MySQL實例中每個數據庫的大小!
SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES ORDER BY (data_length + index_length) DESC;
查看表統計信息
INFORMATION_SCHEMA.STATISTICS表包含緩存的值。因此,這些默認情況下會在24小時后過期。如果沒有緩存的統計信息或統計信息已過期,則在查詢表統計信息列時將從存儲引擎檢索統計信息。
INFORMATION_SCHEMA.STATISTICS表的一種用途是查看特定模式中所有表的索引:
SELECT DISTINCT TABLE_NAME, INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'your_schema';
以下是Navicat中sakila數據庫提供的結果:
您只需刪除where子句即可查看所有架構中的所有索引。在這種情況下,您可能還需要添加數據庫名稱:
SELECT DISTINCT stat.TABLE_SCHEMA as 'DATABASE', TABLE_NAME, INDEX_NAME FROM INFORMATION_SCHEMA.STATISTICS stat;
結論
在今天的文章中,我們學習了許多使用MySQL INFORMATION_SCHEMA來獲取有關MySQL實例中各種對象的元數據信息,從數據庫到表、列、索引等數據庫的方法。盡管查詢是在Navicat Premium中運行的,但適用于Navicat for MySQL也可以正常使用!
相關內容推薦:
想要購買該產品正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn