版权声明:本文为博主原创文章,转载注明出处,欢迎多多交流,乐在沟通,有需要请联系邮箱:[email protected] https://blog.csdn.net/weixin_42749765/article/details/88223273
介绍
- 用select 查询操作调整语句是第一重要的,比如动态网页的急速响应,或巨大数据的快速产生报告,都需要用到sql语句。
- 此外和select 相关的 create insert delete 的语句也是很重要的优化的地方。
- NDB Cluster 集群 支持链接下推优化,完整的将数据发送到NDB Cluster 数据节点 并且在分布式的 NDB Cluster 中并行执行也很重要。
select 优化 分类
- where 字句优化
- 范围优化
- 索引合并优化
- 发动机状态下推优化
- 指数条件下推优化
- 嵌套循环链接算法
- 嵌套链接优化
- 外链接优化
- 外链接简化
- 多范围读取优化
- 块嵌套循环和批量秘钥访问链接
- 条件过滤
- is null 优化
- 按优化顺序
- group by 优化
- distinct 优化
- 函数调用优化
- 窗口函数调用优化
- 行构造函数优化
- 行构造函数表达式优化
- 避免全表扫描
优化考虑因素:
- 1,.添加索引 在 where 子句使用的列上 设置索引,可以加快评估过滤和结果的最终检索
- 2.为了避免磁盘空间浪费,可以尝试构建一小组索引,以加快应用程序的相关查询
- 3.对应不同的查询 选择对应的 链接 和 外键等功能。使用 explain 语句实现对列的索引查询
- 4.使用函数的方式执行 根据查询的机构为结果数据做操作测试等 会很大提高速度
- 5.减少全表扫描 尤其是大表的全表扫描
- 6.通过 analyze table 定期统计信息 保持最新 这种优化有助于项目总执行计划的资料信息
- 7.正确的使用 InnoDB 和 MyISAM 存储引擎 来实现高性能的查询
- 8.使用InnoDB 实现单查询事物
- 9.避免程序难理解的转换查询尤其是优化程序自动执行的一些语句
- 10.如果无法解决基本的性能问题可以阅读官方的explain相关的文档
- 11.调整 mysql 缓存内存大小和先关属性,通过使用 InnoDB 缓存池, MyISAM 秘钥缓存 和 mysql 查询缓存,来实现重复熟读更快,因为除第一次以外的查询走的都是 内存。
- 12.对于高速内存的数据,也可以进一步优化,而且不会导致性能大幅度下降的情况。
- 13.处理锁定问题,比如同事访问表的其他回话印象。
where 字句优化:https://blog.csdn.net/weixin_42749765/article/details/88227280
文章持续更新,转发标记出处方便更新!