Mysql高级3——慢查询日志、日志分析工具、视图、读写分离

sql慢了 进行分析

慢查询日志

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL ,则会被记录到慢查询日志中。

具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的语句。

由他来查看哪些SQL超出了我们的最大忍耐时间值,比如一条sql执行超过5秒钟,我们就算慢SQL,希望能收集超过5秒的sql,结合之前explain进行全面分析。

日志分析工具mysqldumpslow

查看mysqldumpslow的帮助信息

  • -a: 不将数字抽象成N,字符串抽象成S
  • -s: 是表示按照何种方式排序;
  • -t:即为返回前面多少条的数据;
  • -g:后边搭配一个正则匹配模式,大小写不敏感的;
  • c: 访问次数
  • l: 锁定时间
  • r: 返回记录
  • t: 查询时间
  • al:平均锁定时间
  • ar:平均返回记录数
  • at:平均查询时间
得到返回记录集最多的10个SQL
mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log
 
得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /var/lib/mysql/atguigu-slow.log
 
得到按照时间排序的前10条里面含有左连接的查询语句
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/atguigu-slow.log
 
另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现爆屏情况
mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log | more

SHOW PROCESSLIST

能干什么:查询所有用户正在干什么

如果出现不顺眼的kill [id]

视图 VIEW

是什么?

将一段查询sql封装为一个虚拟的表。 这个虚拟表只保存了sql逻辑,不会保存任何查询结果。

作用

1、封装复杂sql语句,提高复用性

2、逻辑放在数据库上面,更新不需要发布程序,面对频繁的需求变更更灵活

适用场景

很多地方可以共用的一组查询结果

报表

创建

 CREATE VIEW view_name 
AS
SELECT column_name(s)
FROM table_name
WHERE condition

使用

查询
select * from view_name 
 
  更新
 CREATE OR REPLACE VIEW view_name 
AS
SELECT column_name(s)
FROM table_name
WHERE condition

注意事项

mysql的视图中不允许有from 后面的子查询,但oracle可以

MySQL 读写分离

复制的基本原理

slave会从master读取binlog来进行数据同步

从机是从接入的时候 开始复制的

三步骤+原理图

master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events

slave将master的binary log events拷贝到它的中继日志(relay log)

slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的

复制的基本原则

  • 每个slave只有一个master
  • 每个slave只能有一个唯一的服务器ID
  • 每个master可以有多个salve

复制的最大问题

延时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值