mysql SQL优化琐记之索引
2024-08-31 14:28:03
equal最好了,其次in,最后是range
!= <> 这类非操作尽量不用,它会转换为range。
>都是范围查询
复合索引有左匹配原则,(clo_a,clo_b)相当建立了两个索引
(clo_a,clo_b)
clo_a,
加索引前,最好在相同数据量的测试环境下,测试。 最好用线上的,怕造的数据有数据倾斜,造成数据选择性不高。
有分隔符的复杂索引,可以考虑前辍索引或复合索引
数据库增加索引操作
虽然,mysql声称5.7版本后,支持在线ddl且不锁表,但是,执行效率,还是没有pt-online-schema-change工具快
pt-online-schema-change工具不会有任何锁表的情况,因为,它的原理是新复制一张临时表,表结构和旧表一样,然后添加索引,把数据迁移到新临时表中,并且,还有3个触发器分别记录dml操作。最后,数据复制完成,2张表rename互换即可
使用online DDL模式,最稳妥,但需要安装online工具,得有权限。否则只能用普通DDL模式蛋疼的操作了
执行时间和数据量成正比,只不过是锁的时间会比较短,获取DML锁就可以了 后续还有一个锁的时间和增量数据有关
备注:
只读库如果只是高并发的读操作,产生的是共享乐观锁,一般情况下,只读库很少出现死锁。如果出现象上次那种大批量的慢查询sql,客户端发起读请求,服务端未能及时返回数据,导致客户端一直连续发送请求时,可能会出现阻塞等待。
最新文章
- WPF,Silverlight与XAML读书笔记第四十四 - 外观效果之样式
- Java学习第一天
- 移动端手势库Hammer.js学习
- android WebView交互优化
- OpenCV学习笔记:如何扫描图像、利用查找表和计时
- unity3d Realistic eye shading 真实的眼睛渲染
- MSSQL 日期操作函数 总结
- 启动Apache出现问题:一直停留在启动界面
- Unity3D中通过Animator动画状态机获取任意animation clip的准确播放持续时长
- Webpack 4教程 - 第七部分 减少打包体积与Tree Shaking
- .net core使用Pipelines进行消息IO合并
- HDU-1695 莫比乌斯反演
- 如何用ABP框架快速完成项目(14) - 结尾? 当然不是, 这只是开始!
- 章节七、4-Sets
- source insight常用设置问题
- Prism for WPF
- python-享元模式
- Explain EV in /proc/bus/input/devices data【转】
- 让TQ2440也用上设备树(2)
- ie6,7下的textarea的type获取