如何理解并正确使用 MySQL 索引
Posted ssming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解并正确使用 MySQL 索引相关的知识,希望对你有一定的参考价值。
1、概述
索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在mysql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。
注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构
2、索引的优点
1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度
2、帮助服务器避免排序和临时表
3、可以将随机I/O变为顺序I/O
3、索引的创建
3.1、主键索引
1
|
ALTER TABLE ‘table_name‘ ADD PRIMARY KEY ‘index_name‘ (‘column‘);
|
3.2、唯一索引
1
|
ALTER TABLE ‘table_name‘ ADD UNIQUE ‘index_name‘ (‘column‘);
|
3.3、普通索引
1
|
ALTER TABLE ‘table_name‘ ADD INDEX ‘index_name‘ (‘column‘);
|
3.4、全文索引
1
|
ALTER TABLE ‘table_name‘ ADD FULLTEXT ‘index_name‘ (‘column‘);
|
3.5、组合索引
1
|
ALTER TABLE ‘table_name‘ ADD INDEX ‘index_name‘ (‘column1‘, ‘column2‘, ...);
|
4、B+Tree的索引规则
创建一个测试的用户表
1
2
3
4
5
6
7
8
|
DROP TABLE IF EXISTS user_test;
CREATE TABLE user_test(
id int AUTO_INCREMENT PRIMARY KEY,
user_name varchar(30) NOT NULL,
sex bit(1) NOT NULL DEFAULT b‘1‘,
city varchar(50) NOT NULL,
age int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
创建一个组合索引: ALTER TABLE user_test ADD INDEX idx_user(user_name , city , age);
以上是关于如何理解并正确使用 MySQL 索引的主要内容,如果未能解决你的问题,请参考以下文章