MySql架构图
MySql文件类型
参数文件,启动时候需要的参数
日志文件,二进制文件(bin log),慢查询日志,查询日志,错误日志,重做日志(undo log)
socket文件,使用域socket连接时候用的
pid文件,进程的pid文件
表结构文件,存储表结构的定义
存储引擎文件,存放最终数据的
参数查询和修改
查询的参数在 INFORMATION_SCHEMA库中的GLOBAL_STATUS中,5.6之后的mysql默认是关闭的
set global show_compatibility_56=on;
可以使用上面命令打开
显示innodb相关的参数
SHOW VARIABLES LIKE 'innodb%'
有些参数默认是修改会话级别的
--修改当前会话的参数
SET read_buffer_size=524288;
--查询当前会话的参数值
SELECT @@session.read_buffer_size;
--查询这个值的全局值
SELECT @@global.read_buffer_size;
--如果要修改全局值,加上@@global前缀
SET @@global.read_buffer_size=65535;
静态变量是只读的不可以修改
--修改静态变量会报错
SET GLOBAL datadir='sdff';
Error Code : 1238
Variable 'datadir' is a read only variable
(0 ms taken)
MySql常见的日志文件有
1.错误日志
2.二进制日志bin log
3.慢查询日志 slow log
4.查询日志
查看错误日志
SHOW VARIABLES LIKE 'log_error';
慢查询日志
--慢查询日志是否开启
SHOW VARIABLES LIKE 'slow_query_log';
--慢查询日志存放位置
SHOW VARIABLES LIKE 'slow_query_log_file';
--查询超过多长时间就算是慢查询
SHOW VARIABLES LIKE 'long_query_time';
--查询相关的参数
SHOW VARIABLES LIKE '%query%';
--如果查询没有使用索引就在慢查询日志中记录这条sql
SHOW VARIABLES LIKE 'log_queries_not_using_indexes%'
--允许每分钟多少条没有使用索引的sql被记录到慢查询日志文件中
SHOW VARIABLES LIKE 'log_throttle_queries_not_using_indexes%'
慢查询命令
mysqldumpslow
通过数据库表查看慢查询日志
--查询日志保存的方式,默认为FILE
SHOW VARIABLES LIKE 'log_output';
--将查询日志保存到表中
SET GLOBAL log_output='TABLE';
--执行一个慢查询
SELECT sleep(11);
--通过表 mysql.slow_log可以查看刚才执行的慢查询
--修改mysql.slow_log表存储引起为MyISAM
SET GLOBAL slow_query_log=off;
ALTER TABLE mysql.slow_log ENGINE=MyISAM;
查询日志
所有对主机进行查询的操作都会记录,甚至对Access denied的请求都会记录
二进制日志
二级制日志bin log记录所有对mysql更改的操作,加入一个update没有对任何行做修改,也会记录这条sql
mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: mysql2-bin.000010
Position: 625203964
Binlog_Do_DB:
Binlog_Ignore_DB: mysql,information_schema,sys,performance_schema
Executed_Gtid_Set:
1 row in set (0.08 sec)
binl