随笔分类 -  Mysql

Mysql related
摘要:在InnoDB中,当对应的数据不存在与Buffer Pool中时,为了避免大量的随机磁盘I/O可能带来的性能瓶颈,InnoDB 在Buffer Pool 中划分出一部分内存,称为Change Buffer,由其负责缓存由DML操作引起的二级索引相关数据的变化。当对应的数据下次被读入Buffer Pool 中时,Change Buffer 中记录的变化信息会被合并到数据中。其结构如下图所示。简要的,... 阅读全文
posted @ 2019-07-06 18:06 luojiahu 阅读(462) 评论(0) 推荐(0)
摘要:InnoDB通过在内存中维护缓存池(Buffer Pool)来对数据和索引进行缓存,从而提高数据库性能。了解Mysql内存缓冲池的原理,并针对性地进行调优,能够最大化其带来的性能优势。通常,在保证服务器上其他应用程序有足够内存的情况下,可以给buffer pool分配尽可能多的内存空间。越大的buffer pool能够使mysql越能够像内存数据库一样提供服务。其大小通过innodb_buffer... 阅读全文
posted @ 2019-06-29 17:43 luojiahu 阅读(493) 评论(0) 推荐(0)
摘要:1. 通过SHOW STATUS获取更多信息 在调试mysql语句时,如果执行计划不能提供足够的信息支持判断,可以通过在语句执行前执行FLUSH STATUS,执行完语句后执行SHOW STATUS LIKE 获取更多信息,例如: SHOW STATUS WHERE Variable_name LI 阅读全文
posted @ 2019-05-19 17:28 luojiahu 阅读(972) 评论(0) 推荐(0)
摘要:在排查编写Mysql查询语句时,除了需要满足业务条件,还需要考虑所编写SQL的性能表现,避免出现慢SQL导致大量慢查询的情况。通常,可以通过查看执行计划的方式查看所编写SQL语句的性能优劣。此外,还可以通过查看语句的分阶段执行的时间、操作消耗来进行补充分析。 1. 执行计划的列 1.1. id列 查 阅读全文
posted @ 2019-05-19 16:50 luojiahu 阅读(625) 评论(0) 推荐(0)
摘要:Extra列显示Mysql解析查询的附加信息。有如下取值: WHERE条件恒不满足,结果集为空 HAVING条件恒不满足,结果集为空 表示查询所需的信息直接通过索引获取,未读取实际的数据行。 有两种情况,一种是Mysql的聚簇索引(Cluster Index),因为聚簇索引将索引信息和数据信息组织在 阅读全文
posted @ 2019-05-19 16:50 luojiahu 阅读(658) 评论(0) 推荐(0)