原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11777286.html
MySQL--索引:
主键索引, 唯一索引, 普通索引, 组合索引
CREATE INDEX可以添加普通索引和唯一索引 创建一个名称为index_of_stu的表名为stu_user, 索引列为gender的普通索引 CREATE INDEX index_of_stu ON stu_user(gender); 创建一个名称为index_of_stu_name的表名为stu_user, 索引列为sname的唯一索引 CREATE UNIQUE INDEX index_of_stu_name ON stu_user(sname); ALTER可以添加普通索引,唯一索引,主键索引三种模式;而且参数列表可以有多个参数 新增一个普通索引 ALTER TABLE stu_user ADD INDEX index_add_one(sid); 新增一个唯一索引 ALTER TABLE stu_user ADD UNIQUE(sid,cid); 新增一个主键索引 ALTER TABLE stu_user ADD PRIMARY KEY(sname); 删除索引 DROP INDEX index_name_of_stu ON stu_user; 删除索引 ALTER TABLE stu_user DROP INDEX index_name_of_stu; 删除唯一索引 ALTER TABLE stu_user DROP PRIMARY KEY; 查看表名为stu_user的索引 SHOW INDEX FROM stu_user 查看该查询语句对索引的使用情况 EXPLAIN SELECT * FROM stu_user 创建一个组合索引(最左原则, 如果缺少sid, 则该组合索引不生效) ALTER TABLE stu_user ADD INDEX index_add_one(sid, cid);
注意事项:
1.索引要建立在经常进行select操作的字段上
2. 索引不会包含有NULL的列
3. SQL查询只使用一个索引
4. LIKE操作左匹配原则-->like %bbbbb%不会使用索引,而like bbbbb%可以使用索引
5. 不要在列上进行运算
6. .不使用NOT IN 、<>、!=操作,但<,<=,=,>,>=,BETWEEN,IN是可以用到索引的
7. 使用短索引
8. 二进制列尽量不建索引
9. WHERE JOIN 出现的字段尽量建索引