当前位置:   article > 正文

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

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/801601
推荐阅读
相关标签
  

闽ICP备14008679号