• MySQL优化策略


    一、查询优化思路

    1. 使用索引列查询时,不要使用表达式,将计算放在业务层。
    2. 尽可能使用主键索引,不要使用其他索引(如果不会导致回标的情况除外)
    3. 前缀索引:使用索引的列字符较长,可使用部分前缀字符组件索引,从而节约索引空间,提高索引效率。
    4. 使用索引扫描排序。
    5. where中使用 有索引列 or无索引列 不走索引。
    6. 范围查询条件用到索引,只有第一个范围查询条件会用到索引,后续的条件不会用到索引。
    7. 数据类型转换,字符可以转换为数字,但是字符串转为数字会导致索引失效。
    8. 更新频繁,数据区分度不高的字段不宜建索引(性别)
    9. 创建索引的列值不要置为NULL,不然可能导致混乱。
    10. 数据表join连接,不宜超过三张表,表关联的字段类型要保持一致,不然不会走索引。
    11. 尽可能使用limit。
    12. 索引覆盖。
    13. 优化关联查询,大数据量情况下,通过一个冗余字段关联两个表。如果A关联B,则只需要在B表(被驱动表)关联字段建立索引即可(两表关联查询使用嵌套循环)。确保任何的group by和order by表达式中只使用一个表的列,这样才能走索引
    14. 使用索引列扫描排序。
    15. 联合索引要遵守最左匹配原则。
    16. 避免在索引上使用内联函数。

    二、整体优化思路

    在这里插入图片描述

    三、连接配置优化

    1. 服务端优化:增连连接数量,及时释放不活动的连接。
    2. 客户端优化:减少和服务端的连接次数,使用连接池(阿里的Druid、Hikari)。

    四、架构优化

    1. 使用缓存
    2. 读写分离:主从复制、集群。
    3. 分库分表:垂直分库/表(减轻并发压力)、水平分库/表(解决存储瓶颈)。分库分表常见问题
    4. 消息队列削峰。

    优化器-SQL分析与优化

    1. 慢查询:开启慢查询日志,慢日志分析慢日志查询的工具mysqldumpslow
    2. EXPLAIN执行计划:
    3. SQL优化:小表驱动大表、尽量避免使用select*、统计时尽量使用count(),count()≈count(1),大于count(主键)、
    4. 索引优化:前缀索引优化、覆盖索引优化、主键索引最好是自增的、防止索引失效。
    5. 防止索引失效。
  • 相关阅读:
    【Android笔记02】Android目录结构及相关文件介绍
    【Angular】01安装与脚手架
    2 files found with path ‘META-INF/lib_release.kotlin_module’
    Android系统10 RK3399 init进程启动(二十八) SeAndroid政策兼容性
    回归测试策略指南
    CXP 协议中upconnection 与downconnection的说明及其区别
    多模态大模型时代下的文档图像智能分析与处理
    vue3项目学习一:创建vue3项目
    鲜花商城|基于Springboot实现鲜花商城系统
    WebDAV之葫芦儿·派盘+i简记
  • 原文地址:https://blog.csdn.net/peng_shakalaka/article/details/127656497