mysql系统数据库主要存储了一些存储MySQL服务的系统信息表。一般情况下mysql库的表都是MYASIM引擎,除非个别情况。mysql库的表的作用大致可以分为以下几类:
(1)授权系统表
(2)系统对象信息系统表
(3)日志系统表
(4)服务器端辅助系统表
(5)time zone系统表
(6)复制相关系统表
(7)optimizer相关系统表
(8)其他系统表,下面详细看一看
下面详细讲:
一:授权系统表(Grant System Tables)
授权的一些表主要有以下几个:
user: User accounts, global privileges, and other non-privilege columns.
db: Database-level privileges.
tables_priv: Table-level privileges.
columns_priv: Column-level privileges.
procs_priv: Stored procedure and function privileges.
proxies_priv: Proxy-user privileges.
基本上没一个系统表都会包含有权限列和范围列,也就包含一些授权的主要信息表。
user表控制了用户是否能够连接,如果可以连接,则会指出此用户的权限的信息,这个表适用于实例上的所有的数据库。
db表范围列决定哪些用户可以访问哪些数据库从哪个主机。权限列决定允许的操作。在数据库级别授予的权限适用于数据库和数据库中的所有对象,如表和存储程序。
tables_priv和columns_priv表控制的权限就更为细致了,到了表级别和列级别。
procs_priv 表适用于存储例程(过程和函数)。在常规级别授予的权限只适用于一个单一的过程或函数。
proxies_priv 指出那个用户可以作为代理,或者是用户是否有权限给别的用户代理权限。
二:系统对象信息系统表
event: event的系统表,每一次系统启动都会重新load一遍,除非指定 --skip-grant-tables参数启动,不然都是要load的
func: 存放关于用户定义的方法,除非指定 --skip-grant-tables参数启动,不然每一次系统启动都会重新load一遍。
plugin: 存放有关服务器插件的相关信息,除非指定 --skip-grant-tables参数启动,不然每一次系统启动都会重新load一遍。默认的存储引擎是INNODB
proc:存放存储过程和方法的系统表。
三:日志系统表,一般情况下我看了看都是NULL的
general_log: The general query log table.
slow_log: The slow query log table.
四:服务器端辅助系统表
help_category: Information about help categories.
help_keyword: Keywords associated with help topics.
help_relation: Mappings between help keywords and topics.
help_topic: Help topic contents.
这些表存储了mysql帮助的基本信息,我们都可以用HELP +列 来查看具体的帮助信息。
例如:
五:time zone的相关系统表
time_zone: Time zone IDs and whether they use leap seconds.
time_zone_leap_second: When leap seconds occur.
time_zone_name: Mappings between time zone IDs and names.
time_zone_transition, time_zone_transition_type: Time zone descriptions.
设置时区用以下方式:SET GLOBAL time_zone = timezone;
可以用以下方式查看:SELECT @@global.time_zone, @@session.time_zone;
六:复制相关的表
gtid_executed: 存储了复制执行的GTID的信息。
ndb_binlog_index:
slave_master_info, slave_relay_log_info, slave_worker_info: 只有mysql作为slave的时候才会存储相关信息
七:optimizer相关系统表
innodb_index_stats, innodb_table_stats: 显示的是索引的信息
Table 15.3 Columns of innodb_table_stats
Column name Description
database_name Database name
table_name Table name, partition name, or subpartition name
last_update A timestamp indicating the last time that InnoDB updated this row
n_rows The number of rows in the table
clustered_index_size The size of the primary index, in pages
sum_of_other_index_sizes The total size of other (non-primary) indexes, in pages
Table 15.4 Columns of innodb_index_stats
Column name Description
database_name Database name
table_name Table name, partition name, or subpartition name
index_name Index name
last_update A timestamp indicating the last time that InnoDB updated this row
stat_name The name of the statistic, whose value is reported in the stat_value column
stat_value The value of the statistic that is named in stat_name column
sample_size The number of pages sampled for the estimate provided in the stat_value column
stat_description Description of the statistic that is named in the stat_name column
两个表的last_update 这列都记录了最后一次索引更改的时间。而且这两张表都是可以手动进行更新的,修改这两个表可以强制某个查询的执行计划,或者测试替代计划,优点是不需要修改数据库相关信息。更新统计信息需要使用FLUSH TABLE tbl_name来更新统计信息。可以查询某张表的索引信息:
SELECT SUM(stat_value) pages, index_name, SUM(stat_value)*@@innodb_page_size size FROM mysql.innodb_index_stats WHERE table_name='t1' AND stat_name = 'size' GROUP BY index_name;
SELECT index_name, stat_name, stat_value, stat_description FROM mysql.innodb_index_stats WHERE table_name like 't1';
SELECT index_name, stat_name, stat_value, stat_description FROM mysql.innodb_index_stats WHERE table_name like 't1' AND stat_name LIKE 'n_diff%';
server_cost:服务器操作的成本估算信息
engine_cost: 指定存储引擎的成本估算信息
FLUSH OPTIMIZER_COSTS命令可以重新开始读取记录信息。
八:其他的一些系统表
audit_log_filter, audit_log_user: 这两个表提供的是mysql审计相关的信息,如果没有安装的话是没有这两个表的。
firewall_users, firewall_whitelist: 要安装mysql企业防火墙才可以使用。
servers: 主要是 FEDERATED 引擎使用。不做介绍了。
 
这是一个mysql系统库的大概介绍,感觉比较需要我们掌握的就是关于授权,系统表,日志表,优化表和复制相关的表。后面可以看一看mysql的日志类型等和优化相关的方面深入了解一下。
 

mysql系统数据库的更多相关文章

  1. (3.15)mysql基础深入——mysql默认数据库/系统数据库

    (3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...

  2. MySQL/MariaDB数据库的并发控制

    MySQL/MariaDB数据库的并发控制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.并发控制概述 1>.什么是并发控制 MySQL是一个服务器级别的数据库,它通常 ...

  3. Linux下备份Mysql所有数据库

    需求:备份除了mysql系统数据库的所有数据库 以下为Shell脚本,只需要修改用户密码即可 MYSQL_USER=root MYSQL_PASS=123456 MYSQL_CONN="-u ...

  4. MySQL 自带的4个系统数据库的说明

    自带的4个系统数据库:information_schema.mysql.performance_schema.sys: information_schema:这个数据库保存了mysql服务器所有数据库 ...

  5. MySQL中的sys系统数据库是干嘛的

    mysql5.7增加了sys 系统数据库,通过这个库可以快速的了解系统的元数据信息 这个库确实可以方便DBA发现数据库的很多信息,解决性能瓶颈都提供了巨大帮助   这个库在mysql5.7中是默认存在 ...

  6. MySQL主从数据库同步延迟问题解决(转)

    最近在做MySQL主从数据库同步测试,发现了一些问题,其中主从同步延迟问题是其中之一,下面内容是从网上找到的一些讲解,记录下来以便自己学习: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务 ...

  7. 使用percona-xtrabackup实现对线上zabbix监控系统数据库mariadb5.5.47的主从同步

    使用percona-xtrabackup实现对线上zabbix监控系统数据库的主从同步 业务背景: zabbix3.0.4是业务的主要监控,部署在一台单机中,为避免数据丢失先对其做数据主从同步,因主数 ...

  8. mysql系统表加trigger和对特定的库禁用 DDL 语句

    给 mysql 系统表加上 trigger 1 Reply 默认情况下,mysql 是不能给系统表,例如 mysql.user 加上触发器的.会提示 ERROR 1465 (HY000): Trigg ...

  9. MySQL Study之--MySQL schema_information数据库

    MySQL Study之--MySQL schema_information数据库       information_schema数据库是在mysql的版本号5.0之后产生的,一个虚拟数据库,物理上 ...

随机推荐

  1. SQLServer修改表所有者

    当用sp_adduser 对数据库进行添加用户之后.却出现了此对象 '表名' 无效的现象? 执行这个语句,就可以把当前库的所有表的所有者改为dboexec sp_msforeachtable 'sp_ ...

  2. Windows消息机制详解

    消息是指什么?      消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用 ...

  3. easyUI+mvc权限管理后台

    通过按钮和菜单,组合成基本的功能,菜单的功能可以编码修改,但浏览功能是菜单基本的入口,只有角色赋予了浏览功能,才能访问. 基本按钮表 菜单模块 菜单分配按钮 角色授权 下面是对一张表的基本操作 模型 ...

  4. SpringMVC学习系列(11) 之 表单标签

    本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松. 一.首先我们先做一个简单了例子来对Spring MV ...

  5. iOS UIButton单双击处理响应不同的方法

    //显示目标 双击显示当前用户坐标位置 UIButton * btnShowDistination = [[UIButton alloc]initWithFrame:CGRectMake(, SCRE ...

  6. Windows下Apache配置域名

    1.打开httpd.conf 找到“Include conf/extra/httpd-vhosts.conf”这一行,取消前面的#号注释并保存 2.修改httpd-vhosts.conf文件 进入ap ...

  7. ArcGIS Engine中数据的加载 (转)

    1.加载Shapefile数据 1 IWorkspaceFactory pWorkspaceFactory; 2 IFeatureWorkspace pFeatureWorkspace; 3 IFea ...

  8. html css javascript 加载的顺序

    html /css /javascript 这三者的加载顺序影响整个页面的加载速度.而加载速度的快慢直接影响pv(访问量),而且会影响经济收入.在大网站中,可能打开速度快一秒,一年能多带来上亿的收入. ...

  9. 去除angularjs路由的显眼的#号

    在接触到angularj并完成第一个demo后,惊奇地发现居然还可以这样开发前端界面.个人喜欢的一个功能点就是ng的路由功能,可以很好地将视图放入多个文件中.但最基础的使用会给url添加一个显眼的#, ...

  10. 扩展 HtmlwebpackPlugin 插入自定义的脚本

    webpack提供了一个如何开发 webpack 插件的介绍,你可以直接访问这里查看,这里提供一个扩展 HtmlWebpackPlugin 的开发实例. 前面我们介绍过 HtmlWebpackPlug ...