介绍
- 用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.处理锁定问题,比如同事访问表的其他回话印象。
原 mysql8.0 之 索引 优化《一》 之 介绍 和如何使用 总览 总结
原 mysql8.0 之 sql 优化《六》 之 优化示例 总览 总结
原 mysql8.0 之 sql 优化《三B》 之 优化范围查询 总览 总结
原 mysql8.0 之 sql 优化《三A》 之 优化子查询,派生表,查看引用和公用表表达式 总览 总结
原 mysql8.0 之 sql 优化《三》 之 优化数据更新 insert delete update 总览总结
原 mysql8.0 之 sql 优化《二》 之 select 优化 where 字句优化 总览总结
原 mysql8.0 之 sql 优化《一》 之 select 优化 介绍 join 分析 总览总结
文章持续更新,转发标记出处方便更新!