RxJava编程语言爱好者Java服务器端编程

MySQL如何性能优化面试题完美解答

2021-01-26  本文已影响0人  迦叶_金色的人生_荣耀而又辉煌

上一篇 <<<order by中的单路和双路排序算法原理
下一篇 >>>


MySQL底层使用B+树索引,以减少磁盘的IO请求,以及支持范围的高效查询。

优化思路

1.定位慢查询语句

参考MySQL性能优化之慢查询定位

2.使用explain执行计划或trace工具分析日志和sql语句

1 .必须遵循最佳左前缀法则防止索引失效
2.尽量使用覆盖索引,查询列都是加上索引减少 Select *避兔回表查询
3.is null, not null 索引会失效 空值用专门特定常量值定义
4. Like 模糊遵循最佳左前缀法则 或者使用使用复合索引模糊查询
5. 排序相关:最佳左前缀法则避兔 filesort
6.分页优化根据 where id 条件过滤offSet 或者使用子查询先定位 id ,在查询效率可以提高一半,但是如果数据量大于 500 行的情况下建议使用分表。
7. 连表查询:小表驱动大表数据避免全表扫描,超过三张表禁止使用 join
8. count ( * )查询优化辅助索引 count 比主键 1 dcount 效率要高。

具体参考底部相关文章链接。

3.合理的表结构设计

参考MySQL性能优化之表设计优化

4.开发代码中防止行锁升级为表锁

参考MySql的表锁行锁及间隙锁

上一篇下一篇

猜你喜欢

热点阅读