自学内容网 自学内容网

MySql 默认的四个数据库,以及相关的表和查询语句

MySQL数据库安装完成后,会包含一些默认的系统表,这些表主要用于存储数据库系统的元数据、权限、用户信息等。这些系统表分布在不同的系统数据库中,主要包括以下几个:

mysql 数据库:

user:存储用户账户和权限信息。
db:存储数据库的权限信息。
tables_priv:存储表的权限信息。
columns_priv:存储列的权限信息。
procs_priv:存储存储过程和函数的权限信息。
proxies_priv:存储代理用户的权限信息。
其他一些表用于存储插件、服务器状态等信息。

#查询所有用户
select user,host from mysql.user;

#创建新用户
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;

#授予用户权限
GRANT SELECT, INSERT, UPDATE, DELETE ON your_database_name.your_table_name TO 'your_username'@'localhost';
FLUSH PRIVILEGES;

information_schema 数据库:

提供关于其他数据库的元数据,如表、列、数据类型等的访问。这不是真正的系统表存储位置,而是一个视图集合,用于展示数据库的内部信息。

# 查询所有数据库
SELECT SCHEMA_NAME AS DatabaseName, 
DEFAULT_COLLATION_NAME AS Collation 
FROM information_schema.SCHEMATA;

#查询指定数据库的所有表
SELECT TABLE_NAME AS TableName,
       ENGINE AS StorageEngine,
       TABLE_ROWS AS RowCount
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_database_name';

#查询指定表的所有列
SELECT COLUMN_NAME AS ColumnName,
       DATA_TYPE AS DataType,
       CHARACTER_MAXIMUM_LENGTH AS MaxLength,
       IS_NULLABLE AS IsNullable
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name'
      AND TABLE_NAME = 'your_table_name';

performance_schema 数据库:

用于监控MySQL服务器性能的表。收集数据库运行时的性能指标。

#查询所有表的IO操作
SELECT OBJECT_SCHEMA AS DatabaseName,
       OBJECT_NAME AS TableName,
       COUNT_READ AS ReadCount,
       COUNT_WRITE AS WriteCount
FROM performance_schema.table_io_waits_summary_by_table;

#查询所有线程的状态
SELECT OBJECT_SCHEMA AS DatabaseName,
       OBJECT_NAME AS TableName,
       COUNT_READ AS ReadCount,
       COUNT_WRITE AS WriteCount
FROM performance_schema.table_io_waits_summary_by_table;

sys 数据库:

这是一个较新的数据库,提供了一系列视图,旨在简化performance_schema和information_schema中数据的访问,以便于进行性能分析和问题诊断。
这些系统数据库和表是MySQL运行所必需的,它们存储了数据库的配置、权限、性能监控等重要信息。通常不建议直接修改这些系统表,除非你非常清楚你的操作对数据库系统的影响。对于维护和管理工作,MySQL提供了相应的SQL命令和工具来安全地处理这些任务。

#查询数据库的大小
SELECT table_schema AS DatabaseName,
       table_name AS TableName,
       sys.format_bytes(data_length) AS DataSize,
       sys.format_bytes(index_length) AS IndexSize,
       sys.format_bytes(data_length + index_length) AS TotalSize
FROM sys.tables;

#查询慢查询日志
SELECT event_time AS EventTime,
       user_host AS UserHost,
       sql_text AS SqlText,
       timer_wait AS WaitTime
FROM sys.statement_analysis
WHERE schema_name = 'your_database_name'
      AND timer_wait > 0
ORDER BY timer_wait DESC;

以上就是本文全部内容,感谢阅读。


原文地址:https://blog.csdn.net/yuiezt/article/details/140164878

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!