前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一次实际过程中的MySql数据库SQL优化

记录一次实际过程中的MySql数据库SQL优化

作者头像
海加尔金鹰
发布2020-06-09 10:13:28
8420
发布2020-06-09 10:13:28
举报

前言

之前开发项目的过程当中数据库存储的数据量都不是很大,在表的设计当中就只有一个主键索引。很少接触到数据库的索引,SQL 优化这些东西。公司目前的项目数据达到了百万级别了,让我优化一下慢 SQL,之前是懂一些 SQL 优化和索引相关的理论知识,没有实际操作过,特此记录优化的过程和思路,事实证明,理论和实操还是有不少区别的。

理论知识

实际过程

理论是基础,在实际的过程当中需要灵活的运用。特此记录自己在进行优化时的一些操作和心得。

  1. 查看执行语句选择的索引,一次查询只会选择一个索引,是mysql自动进行的选择。 但是mysql并不会总是选择我们希望的索引。所以要结合索引的相关知识让mysql选择到我们希望的索引。
  2. 在1的基础上,需要注意,当我们新建一条索引之后,可能会导致之前某些SQL在索引的选择上发生变化。
  3. 结合业务场景进行SQL方面的优化,当需要连表进行count操作的时候,如果两张表的数据都很大的话,可以先考虑group by 在用sum统计!等等之类的操作(需要查看大量理论相关的知识)
  4. 索引不是越多越好,合理的索引会加快查询效率,不合理的索引也可能会加快效率,但是会提高维护成本!
  5. 光有索引也不行,还得结合SQL进行优化,思考为什么慢,慢的原因可以避免么?慢的sql可以变换么?。
  6. 考虑SQL当中的某个操作是否可以避免,或者替换,比如:存在联合唯一索引:dept_id和user_id,那么当dept_id为查询条件的时候,对user_id的去重操作就可以取消掉。
  7. 如果SQL上优化不了,那就从业务上优化。
  8. 最后一定要有耐心,优化的过程是很枯燥的!!!!!

注意点

  • 保证测试环境和正式环境的数据,SQL,机器配置一致。
  • 有时可能是正式环境进行了限流操作,结果本地跑的飞起,正式卡的飞起。

标题:记录一次实际过程中的MySql数据库SQL优化 作者:海加尔金鹰 地址:https://www.hjljy.cn/articles/2020/01/09/1578549162667.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 理论知识
  • 实际过程
  • 注意点
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档