因为对元数据(元数据就是那些关于如何数据库的那些数据)的使用已经变得愈来愈普遍了,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;