索引的优缺点
优点: 大大缩短查询时间,加索引至少比普通查询快100倍
缺点: 索引的创建和维护需要时间,随着数量增减需要的时间也会增加
索引是需要占用物理空间的,(也就是常说的用空间换时间)表空间是有最大上限设置的 如果一个表有大量索引会更快的到达上限值
!
索引分类
1.普通索引
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。
语句:
创建索引语句:
CREATE INDEX index_name ON table(column)
修改表时加索引语句:
ALTER TABLE table_name ADD INDEX index_name ON (column)
2.唯一索引
索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。
创建唯一索引语句:
CREATE UNIQUE INDEX indexName ON table(column)
修改表时加索引语句:
ALTER TABLE table_name ADD UNIQUE indexName ON (column)
3.主键索引
是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。
创建主键索引语句:
CREATE TABLE 'table' (
'id' int(11) NOT NULL AUTO_INCREMENT ,
PRIMARY KEY ('id')
);
4.复合索引(组合索引)
用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引) 查询时使用创建时第一个开始 索引才有效 使用遵循左前缀集合
复合语句:
ALTER TABLE `table` ADD INDEX indexName (name,xb,age);