前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能优化-索引优化SQL的方法

性能优化-索引优化SQL的方法

作者头像
cwl_java
发布2020-02-13 00:24:24
7270
发布2020-02-13 00:24:24
举报
文章被收录于专栏:cwl_Java

4、索引优化SQL的方法

1、索引的维护及优化(重复及冗余索引)

代码语言:javascript
复制
增加索引会有利于查询效率,但会降低insert,update,delete的效率,但实际上往往不是这样的,过多的索引会不但会影响使用效率,同时会影响查询效率,这是由于数据库进行查询分析时,首先要选择使用哪一个索引进行查询,如果索引过多,分析过程就会越慢,这样同样的减少查询的效率,因此我们要知道如何增加,有时候要知道维护和删除不需要的索引

2、如何找到重复和冗余的索引

重复索引: 重复索引是指相同的列以相同的顺序建立的同类型的索引,如下表中的 primary key和ID列上的索引就是重复索引

代码语言:javascript
复制
create table test(
id int not null primary key,
name varchar(10) not null,
title varchar(50) not null,
unique(id)
)engine=innodb;

冗余索引: 冗余索引是指多个索引的前缀列相同,或是在联合索引中包含了主键的索引,下面这个例子中key(name,id)就是一个冗余索引。

代码语言:javascript
复制
create table test(
id int not null primary key,
name varchar(10) not null,
title varchar(50) not null,
key(name,id)
)engine=innodb;

说明:对于innodb来说,每一个索引后面,实际上都会包含主键,这时候我们建立的联合索引,又人为的把主键包含进去,那么这个时候就是一个冗余索引。

3、如何查找重复索引 工具:使用pt-duplicate-key-checker工具检查重复及冗余索引

代码语言:javascript
复制
pt-duplicate-key-checker -uroot -padmin -h 127.0.0.1
在这里插入图片描述
在这里插入图片描述

4、索引维护的方法 由于业务变更,某些索引是后续不需要使用的,就要进行删除。在mysql中,目前只能通过慢查询日志配合pt-index-usage工具来进行索引使用情况的分析;

代码语言:javascript
复制
pt-index-usage -uroot -padmin /var/lib/mysql/mysql-host-slow.log
在这里插入图片描述
在这里插入图片描述

附:https://www.percona.com/downloads/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4、索引优化SQL的方法
    • 1、索引的维护及优化(重复及冗余索引)
      • 2、如何找到重复和冗余的索引
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档