索引:
why we use INDEX?
1,提高查询效率,查询方法
一、普通索引,index
创建方法:
1.CREATE INDEX indexName ON tableName(column(length));
2.ALTER table ** ADD INDEX [indexName] (column(length))
3.CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (column(length))
);
删除方法:
DROP INDEX [indexName] ON mytable;
二、唯一索引(索引列的值必须唯一,但允许有空值)unique
CREATE UNIQUE INDEX indexName ON mytable(column(length))
三、主键索引(primary key)
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
PRIMARY KEY(ID)
);
四、组合索引
ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);
五、什么时候建立索引
where <,<=,=,>,>=,BETWEEN,IN ,like
六、索引的不足
1.提高查询速度,但是会降低insert,update,delete速度,因为不仅要保存数据,还要保存索引
2.建立索引会占用磁盘空间的索引文件,如果建立太多,索引会很大
3.
七、注意
1.索引不会包含有null值得列
2.使用短索引char(255),可以只取前10位
3.索引列排序
MySQL只使用一个索引,如果where使用了,那么orderby就不会使用
4.like语句操作
like "%abc%"不会使用索引
like "abc%" 会使用
5.不要在列运算
select * from users where YEAR(adddate)<2007;这样索引会失效
改为
select * from users where adddate<‘2007-01-01';