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);