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

(3.15)mysql基础深入——mysql默认数据库

关键词:Mysql默认数据库,mysql系统数据库

1、系统数据库的组成

一共4个

【1】information_schema  【2】mysql  【3】performance_schema  【4】sys

【1】information_schema

【2】mysql

 

 mysql数据库是Mysql核心的数据库,类似于sql server中的master库,oracle中的system部分功能。

  主要负责存储数据库的用户/权限等Mysql自己需要使用的控制和管理信息。

  比如:用户信息、权限信息、储存过程、envent、时间信息等

  【2.1】成本模型

    (1)engine_cost:IO  (2)server_cost:CPU

  【2.2】权限模型

    (1)columns_priv:列权限  (2)db:库权限  (3)user:用户权限

    (4)tables_priv:表权限   (5)procs_priv:存储过程/函数权限  (6)proxies_priv:代理用户权限

    (7)host:主机权限,5.7已弃用

  【2.3】innodb系列

    (1)innodb_index_stats:Innodb索引统计信息  (2)innodb表统计信息

  【2.4】其他模型

    (1)event:事件与任务调度  (2)func:函数  (3)gitd_executed:gtid,mysql启动阶段会读这个表来获取gtid里面的变量值

    (4)help_:以此开头的全是mysql帮助信息 (5)ndb_binlog_index:innodb表统计信息

    (6)plugin:插件表  (7)porc:存储过程

  

【3】performance_schema

  sys < performance_schema:收集数据库服务器性能参数,得到数据库的运行统计信息,可以更好的利用这些信息分析定位问题;

  mysql 5.5增加的,需要使用的时候需要设置参数performance_schema=on

  mysql 5.6默认打开

  这个数据库的信息相当复杂,所以oracle公司官方把performance_schema简化到sys数据库。

  该库中的表也分几类;

  (1)setup 配置表,配置监控选项

  (2)当前enents表,记录当前的哪些线程正在做一些什么事情

  (3)各种事件的历史记录表。

  (4)各种事件的统计表

  (5)杂项表

-- 常用SQL语句

use performance_schema; 

(1)哪个SQL执行最多?哪个平均响应事件最多?

  select * from events_statements_sumary_by_digest order by count_star desc limit 10;

  select * from events_statements_sumary_by_digest order by avg_timer_wait desc limit 10;
(2)哪个SQL扫描的行数最多?哪个SQL临时表用的最多?

  select * from events_statements_sumary_by_digest order by sum_rows_examined desc limit 10;
  select * from events_statements_sumary_by_digest order by sum_created_tmp_disk_tables desc limit 10;
  结果集最多: order by sum_rows_sent desc
  排序数最多: order by sum_sort_rows desc 

(3)哪个表、文件逻辑IO最多(热数据)?

select * from file_sumary_by_instance order by sum_number_of_bytes_read+sum_number_of_bytes_write desc limit 2;

(4)哪个索引没有使用过?

select * from table_io_waits_sumary_by_index_usage

where index_name is not null and count_star=0 and object_schema <> ‘mysql‘

order by object_schema,object_name

(5)哪个索引使用最多

select * from table_io_waits_sumary_by_index_usage order by sum_timer_wait desc limit 1;

(6)哪个等待事件消耗的时间最多

select * from event_wais_sumary_global_by_event_name where event_name !=‘idle‘ order by sum_timer_wait desc limit 1;

  

【4】sys

  所有的数据来自performance_schema,主要是简化DBA的工作,快速了解DB的运行情况。

  有2类表

  (1)字母开头的:适合阅读,是格式化后的数据;

  (2)X$开头的:这是适合工具采集的加工用的数据,原始数据。

  【4.1】简介库中的表信息

    (1)host开头:主机信息,IP信息

    (2)innodb开头:记录Innodb相关信息

    (3)io开头:数据库维护的相关IO信息

    (4)memory开头:内存信息

    (5)processlist:常用,显示线程的相关情况

    (6)schema开头:表的相关信息

    (7)statements开头:语句相关不同维度的信息

    (8)user开头:用户与主机相关信息

    (9)wait开头:等待相关信息

  【4.2】sys库能做什么?

    (1)谁使用了最多的资源?基于IP或是用户?

    (2)大部分连接来自哪里及发送的SQL情况?

    (3)机器执行多的SQL语句是什么样?

    (4)哪个文件产生了最多的IO,它的IO模式是怎么样的?

    (5)哪个表的IO最多?

    (6)哪张表被访问过最多?

    (7)哪些语句延迟比较严重?

    (8)哪些SQL语句使用了磁盘临时表

    (9)哪张表占用了最多的BUFFER POOL

    (10)每个库占用多少BUFFER POOL

    (11)每个链接分配多少内存?

    (12)mysql内部现在有多少个线程在运行?

详解:

use sys;

(1)谁使用了最多的资源?基于IP或是用户?

  select * from host_summary limit 10;

  select * from io_global_by_file_by_bytes limit 10;

  select * from user_summary limit 10;

  memory_global_total;

(2)大部分连接来自哪里及发送的SQL情况?

  查看当前链接情况:select host,current_connections,statements from host_summary;

  查看当前正在执行的SQL:select conn_id,user,current_statement,last_statement from session;

(3)机器执行多的SQL语句是什么样?

  select * from statement_analysis order by exec_count desc limit 10;

(4)哪个文件产生了最多的IO,它的IO模式是怎么样的?
  

(5)哪个表的IO最多?(6)哪张表被访问过最多?

  (5) select * from io_global_by_file_by_bytes limit 10;

  (6) select * from statement_analysis order by exec_count desc limit10;

(7)哪些语句延迟比较严重?

  select * from statement_analysis order by avg_latency desc limit 10;

(8)哪些SQL语句使用了磁盘临时表

  select db,query,temp_tables,tmp_disk_tables from statement_analysis where tmp_tables >0

(9)哪张表占用了最多的BUFFER POOL

  select * from innodb_buffer_stats_by_table order by pages desc limit 10;

(10)每个库占用多少BUFFER POOL

  select * from innodb_buffer_stats_by_schema;

(11)每个链接分配多少内存?

(12)mysql内部现在有多少个线程在运行?

  select user,count(*) from processlist group by user;

  查看所有的进程信息:  select * from processlist ;

原文地址:https://www.cnblogs.com/gered/p/10618377.html

时间: 2024-10-22 19:50:03

(3.15)mysql基础深入——mysql默认数据库/系统数据库的相关文章

MySQL基础及MySQL C API编程

MySQL基础及MySQL C API编程 一.MySQL For Windows安装: 1. 下载: 上官网下载即可: http://www.mysql.com/downloads/ 2. 安装: 没有什么好说的,傻瓜式,也没有什么要注意的. 3. 配置: 添加系统变量MYSQL_HOME和修改PATH,目的就是让系统默认能够找到MySQL命令.(安装目录的/bin下面) PS: 补充一下,有的朋友可能下载的是免安装版本,拷贝到一个地方就可以了,这个时候,配置还是需要的,但是配置完成之后,需要

【夯实Mysql基础】MySQL性能优化的21个最佳实践 和 mysql使用索引

本文地址 分享提纲: 1.为查询缓存优化你的查询 2. EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4. 为搜索字段建索引 5. 在Join表的时候使用相当类型的例,并将其索引 6. 千万不要 ORDER BY RAND() 7. 避免 SELECT * 8. 永远为每张表设置一个ID 9. 使用 ENUM 而不是 VARCHAR 10. 从 PROCEDURE ANALYSE() 取得建议 11. 尽可能的使用 NOT NULL 12. Prepare

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

自带的4个系统数据库:information_schema.mysql.performance_schema.sys: information_schema:这个数据库保存了mysql服务器所有数据库的信息.比如数据库的名.数据库的表.访问权限.数据库表的数据类型,数据库索引的信息等等. performance_schema:主要用于收集数据库服务器性能参数,可用于监控服务器在一个较低级别的运行过程中的资源消耗.资源等待等情况. sys:库中所有的数据源来自:performance_schema

MySql基础学习-mysql安装

Linux环境下的安装 1检查是否已经安装 sudo service mysql start #若未安装,则提示: mysql: unrecognized service 2安装MySql #安装 MySQL 服务端.核心程序 sudo apt-get install mysql-server #安装 MySQL 客户端 sudo apt-get install mysql-client 安装过程中,提示确实yes即可,并且会提示设置root密码,设置即可. 3检查安装 sudo netstat

Mysql基础教程——mysql之一

教程列表:http://www.dxzy163.com/view/index7627.html 41 存储过程 40 全文索引与停止词 39 索引的管 38 索引概念 37 数据库备份与恢复 36 事务语法 35 存储引擎与事务概 34 beforeafter区别 33 触发器实(订单与库存管) 32 触发器语 31 触发器基本概 30 阶段总结() 29 字符集与校对 28 视图 27 表管理之列的增删 26 左连接笔试题 25 左右内连接的区别 24 连接查询概念与左连接语法 23 unio

mysql基础之-mysql存储引擎概述(八)

0x01 mysql 存储引擎:存储引擎也通常被称作“表类型” mysql> show engines;   --- 查看当前所有所支持的存储引擎 mysql> show table status 存储引擎格式: SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr] mysql> show table status in hellodb where Name='class'\G Name 表名 Engi

MySql基础入门-mysql体系结构

mysql体系结构:     由:连接池组件.管理服务和工具组件.sql接口组件.查询分析器组件.优化器组件.                缓冲组件.插件式存储引擎.物理文件组成.     mysql是独有的插件式体系结构,各个存储引擎有自己的特点.              mysql各个存储引擎概述:     innodb存储引擎:[/color][/b] 面向oltp(online transaction processing).行锁.支持外键.非锁定读.默认采用repeaable级别(

Mysql基础教程-Mysql的字符集查看与修改

Show variables like "%char%"修改mysql的字符集----数据库级1)临时的修改Set global character-set_server=utf82)永久修改Alter database commany set utf8 collate utf8_general_ci; ----表级别Alter table commany default charset=utf8----列级别Alter table commany.name change name v

[MySQL实战-Mysql基础篇]-mysql架构

1.基本组成 下面是mysql的基本架构示意图  图一 图二 我们可以从图上看出,mysql大体分为两个部分,一个是server层,另一个是引擎层. server层中包含了连接器.查询缓存.分析器.优化器.执行器等,涵盖Mysql的大多数核心服务功能,以及所有的内置函数(如时间.日期.数学.加密等),所有跨存储引擎的功能都在这一层实现,比如存储过程.触发器.视图等. 而存储引擎层负责数据的存储和提取.其架构模式是插件式的,支持InnoDB,MyISAM.Memory等多个存储引擎.现在最常用的存