【慕课网_性能优化之MySQL优化_学习】【09】
2017-10-26 15:39
211 查看
索引的维护及优化 --- 重复及冗余索引
重复索引: 相同的列以相同的顺序建立同类型的索引
CREATE TABLE test (
id INT NOT NULL PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
title VARCHAR(50) NOT NULL,
UNIQUE(id)
)ENGINE = INNODB;
本来id就是主键了是唯一索引了,又在id上建了一个唯一索引
冗余索引: 多个索引的前缀列相同, 或是在联合索引中包含了主键索引
CREATE TABLE test (
id INT NOT NULL PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
title VARCHAR(50) NOT NULL,
KEY(NAME,id)
)ENGINE = INNODB;
查找重复索引和冗余索引
USE information_schema;
SELECT
a.TABLE_SCHEMA AS '数据名', a.TABLE_NAME AS '表名', a.INDEX_NAME AS '索引1', b.INDEX_NAME AS '索引2', a.COLUMN_NAME AS '重复列名'
FROM
STATISTICS a
JOIN STATISTICS b
ON a.TABLE_SCHEMA = b.TABLE_SCHEMA
AND a.TABLE_NAME = b.TABLE_NAME
AND a.SEQ_IN_INDEX = b.SEQ_IN_INDEX
AND a.COLUMN_NAME = b.COLUMN_NAME
WHERE a.SEQ_IN_INDEX = 1
AND a.INDEX_NAME <> b.INDEX_NAME
工具: pt_duplicate_key_checker
删除不用的索引:
通过慢查询日志 + pt-index-usage进行分析索引的使用情况
工具: percona-toolkit
重复索引: 相同的列以相同的顺序建立同类型的索引
CREATE TABLE test (
id INT NOT NULL PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
title VARCHAR(50) NOT NULL,
UNIQUE(id)
)ENGINE = INNODB;
本来id就是主键了是唯一索引了,又在id上建了一个唯一索引
冗余索引: 多个索引的前缀列相同, 或是在联合索引中包含了主键索引
CREATE TABLE test (
id INT NOT NULL PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
title VARCHAR(50) NOT NULL,
KEY(NAME,id)
)ENGINE = INNODB;
查找重复索引和冗余索引
USE information_schema;
SELECT
a.TABLE_SCHEMA AS '数据名', a.TABLE_NAME AS '表名', a.INDEX_NAME AS '索引1', b.INDEX_NAME AS '索引2', a.COLUMN_NAME AS '重复列名'
FROM
STATISTICS a
JOIN STATISTICS b
ON a.TABLE_SCHEMA = b.TABLE_SCHEMA
AND a.TABLE_NAME = b.TABLE_NAME
AND a.SEQ_IN_INDEX = b.SEQ_IN_INDEX
AND a.COLUMN_NAME = b.COLUMN_NAME
WHERE a.SEQ_IN_INDEX = 1
AND a.INDEX_NAME <> b.INDEX_NAME
工具: pt_duplicate_key_checker
删除不用的索引:
通过慢查询日志 + pt-index-usage进行分析索引的使用情况
工具: percona-toolkit
相关文章推荐
- 【慕课网_性能优化之MySQL优化_学习】【07】
- 【慕课网_性能优化之MySQL优化_学习】【03】
- 【慕课网_性能优化之MySQL优化_学习】【08】
- 【慕课网_性能优化之MySQL优化_学习】【10】
- 【慕课网_性能优化之MySQL优化_学习】【04】
- 【慕课网_性能优化之MySQL优化_学习】【05】
- 【慕课网_性能优化之MySQL优化_学习】【11】
- 【慕课网_性能优化之MySQL优化_学习】【06】
- 【慕课网_性能优化之MySQL优化_学习】【02】
- 【慕课网_性能优化之MySQL优化_学习】【01】
- mysql性能优化学习笔记(4)索引的优化
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
- mysql性能优化学习与实战-1
- mysql性能优化学习笔记(5)数据库结构优化
- Mysql学习总结(38)——21条MySql性能优化经验
- mysql性能优化学习笔记
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
- Mysql学习总结(38)——21条MySql性能优化经验
- 高性能Mysql学习笔记-查询性能优化
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询