
在MySQL的安装和初始化过程中,系统会自动创建几个核心数据库,这些数据库被称为默认数据库
了解这些默认数据库及其功能对于有效管理和使用MySQL至关重要
本文将深入探讨MySQL数据库默认包含的库,以及它们在数据库管理中的作用
一、MySQL默认数据库概述 MySQL在初始化完成后,会默认创建四个核心系统库:`information_schema`、`performance_schema`、`mysql`和`sys`
这些系统库存储了MySQL服务自身的信息,如用户信息、权限设置、库表结构以及性能数据等,对数据库管理员(DBA)的工作具有重大意义
二、MySQL默认数据库详解 1.`information_schema` `information_schema`是一个元数据数据库,它包含了关于所有其他数据库的信息
这个数据库提供了关于数据库、表、列、索引、视图、存储过程、函数等几乎所有数据库对象的描述信息
通过查询`information_schema`中的表,用户可以获取数据库的全面视图,这对于数据库管理、优化和问题诊断至关重要
例如,要统计MySQL实例下每个库中所有表的表名以及个数,可以使用以下SQL语句: sql SELECT table_schema, COUNT(table_name), GROUP_CONCAT(table_name) FROM`information_schema.tables` GROUP BY table_schema; 2.`performance_schema` `performance_schema`用于收集数据库服务器性能数据,以便进行问题分析
它记录了各种性能事件,如SQL语句的执行次数、执行时间、锁等待情况等
这些信息对于识别性能瓶颈、优化查询和调优数据库配置非常有用
由于`performance_schema`中的信息较为复杂,MySQL官方特意简化了对它的查询,形成了一个名为`sys`的数据库
3.`sys` `sys`数据库的所有数据都来源于`performance_schema`,但它通过创建一系列简化的视图,使得查询性能数据变得更加直观和快捷
`sys`库被称为MySQL的数据字典,存放了所有的元数据信息,包括数据库、表、索引的详细信息,以及会话和事务的信息
通过`sys`库,用户可以快速了解数据库的运行状态,进行性能调优和数据资产管理
例如,要查看当前正在运行的SQL语句,可以使用以下SQL语句: sql SELECT conn_id, USER, current_statement, last_statement FROM sys.session; 4.`mysql` `mysql`数据库是MySQL系统自身的核心数据库,用于存储系统的元数据和管理用户权限
它包含了多个系统表,这些表存储了关于数据库用户、权限、日志和其他系统信息的元数据
通过这些系统表,MySQL可以有效地管理和控制用户对数据库的访问和操作
`mysql`数据库中的一些关键表包括: -`user`表:存储了数据库用户的全局权限信息
-`db`表:存储了库级别的权限信息
-`tables_priv`表:存储了表级别的权限信息
-`columns_priv`表:存储了列级别的权限信息
-`procs_priv`表:存储了存储过程和函数的权限信息
-`proxies_priv`表:存储了代理用户的权限信息
-`event`表:存储了事件与任务调度的信息
-`gtid`表:与GTID主从复制有关的信息
-`innodb_index_stats`和`innodb_table_stats`表:存储了InnoDB索引和表的统计信息
-`plugin`表:存储了数据库插件的信息
这些系统表是MySQL权限管理和安全控制的基础,通过它们,DBA可以灵活地配置用户权限,确保数据库的安全性和数据的完整性
三、MySQL默认数据库的实际运用 了解MySQL默认数据库的结构和功能后,我们可以利用它们来进行一系列数据库管理和优化操作
以下是一些实际运用案例: 1.统计数据库占用空间:通过查询`information_schema.TABLES`表,可以统计出MySQL实例下每个库占用空间的总大小,并以MB为单位显示
这对于数据库容量规划和存储优化非常重要
sql SELECT table_schema, SUM(AVG_ROW_LENGTHTABLE_ROWS+INDEX_LENGTH)/1024/1024 FROM`information_schema.TABLES` GROUP BY table_schema; 2.查找非InnoDB表:通过查询`information_schema.tables`表,可以找出MySQL实例下所有非InnoDB引擎的表
这对于数据库迁移、升级和性能优化很有帮助
sql SELECT table_schema, table_name FROM information_schema.tables WHERE ENGINE!= InnoDB AND table_schema NOT IN(sys, performance_schema, information_schema, mysql); 3.用户权限管理:通过查询和修改mysql数据库中的系统表,可以灵活地配置和管理数据库用户的权限
这对于确保数据库的安全性和数据的完整性至关重要
4.性能调优:通过查询`performance_schema`和`sys`数据库中的表,可以收集和分析数据库的性能数据,识别性能瓶颈,优化查询和调优数据库配置
这对于提高数据库的响应速度和吞吐量非常重要
5.数据资产管理:通过查询`information_schema`和`sys`数据库中的表,可以进行数据资产统计,了解有多少个库、多少表、占用了多大的硬盘空间等信息
这对于数据库容量规划和数据管理很有帮助
四、总结 MySQL的默认数据库是数据库管理和优化的基础
了解这些数据库的结构和功能,以及如何利用它们进行数据库管理和优化操作,对于提高数据库的性能、安全性和可维护性具有重要意义
作为数据库管理员或开
MySQL迁移执行全攻略
MySQL默认数据库大盘点
MySQL空间计算全攻略
MySQL安全解锁:保障数据库安全的秘诀
MySQL服务删除后的应对策略
MySQL数据库:轻松修改表字段长度的实用指南
MySQL字符集:UTF-8与GB2312解析
MySQL迁移执行全攻略
MySQL空间计算全攻略
MySQL安全解锁:保障数据库安全的秘诀
MySQL服务删除后的应对策略
MySQL数据库:轻松修改表字段长度的实用指南
MySQL字符集:UTF-8与GB2312解析
MySQL数据库存储图片全攻略
MySQL修改数据库字段值技巧
MySQL报表数据解析与实战指南
MySQL教程:轻松去除指定ID记录
一台电脑能否安装两个MySQL实例?
快速指南:如何调出MySQL命令窗口,轻松管理数据库