MySQL高级性能优化——5、优化分析

妖精的绣舞 提交于 2019-12-22 02:34:13

优化分析

SQL性能下降的表现

  1. 执行时间长
  2. 等待时间长

SQL性能下降的原因

  1. 查询语句写的不好:各种连接以及子查询,导致没用上索引或者就没有建立索引。
  2. 建立的索引失效:建立了索引,在真正执行的时候,索引失效了导致没用上索引。
  3. 关联查询使用了太多的Join。
  4. 服务器优化和参数配置不合适:如果设置的不合理,比例不恰当也会导致性能下降,SQL变慢。

索引

什么是索引
索引是一个帮助MySQL高效获取数据的一种数据结构,类似字典的索引目录可以通过索引快速的查找到排好序的数据。

为什么要建立索引
为了提高查询数据的效率

建立索引的优势

  1. 提高了数据检索的效率,降低了数据库IO的开销
  2. 通过索引对数据进行排序,降低了排序的成本,降低了CPU的消耗

建立索引的劣势

  1. 索引是以文件的形式存储在磁盘中。会占用空间。
  2. 索引也是一张表,该表保存了主键与索引字段并指向实体表的记录。所以也占空间。
  3. 更新表时,MYSQL不仅要保存数据,还要对索引文件进行保存,每次更新添加了索引的字段就会导致性能下降。
  4. 索引提高了查询速度但是降低了更新速度。
  5. 会调整因为更新带来的键值变化后索引的信息。

索引尽量加在经常用来查询的字段上,避免加在那些常常发生变化的字段上。

索引的分类

  1. 单值索引:一个索引只包含单个列,一个表可以有多个单值索引。
  2. 唯一索引:索引列的值必须唯一,但是可以有空值
  3. 复合索引:一个索引包含多个列
  4. 全文索引:MYSQL全文检索是利用查询关键字和查询列内容的相关度进行检索,可以利用全文检索列来提高匹配的速度。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!