mysql8.0 之 sql 优化《一》 之 select 优化 介绍 join 分析 总览总结

版权声明:本文为博主原创文章,转载注明出处,欢迎多多交流,乐在沟通,有需要请联系邮箱:[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

文章持续更新,转发标记出处方便更新!

猜你喜欢

转载自blog.csdn.net/weixin_42749765/article/details/88223273
今日推荐