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.建立索引会占用磁盘空间的索引文件,如果建立太多,索引会很大
七、注意
- 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′;