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

上一篇 << 下一篇 >>>MySQL自带主从复制原理


集中式数据库优化思路

(1)硬件升级:处理器、内存、磁盘子系统和网络。
(2)数据库设计:反规范化技术(逻辑)、数据库分区(物理)。
(3)索引优化策略:选择经常查询不常更新的属性、数据量小的不设置索引等。
(4)查询优化:建立物化视图或尽可能减少多表查询等。

分布式数据库优化思路

(1)主从复制、读写分离
(2)数据库分片(分表)、分库
(3)分布式缓存技术

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的表锁行锁及间隙锁


推荐阅读:
<< << << << << << << << <<

你可能感兴趣的:(MySQL如何性能优化面试题完美解答)