索引

索引:

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

你可能感兴趣的:(索引)