什么是索引
索引:用于快速找出某个列中有一特定值的行,(是存放在模式(schema)中的一个数据库对象,依赖表存在,提高对表的索引查询速度)
索引的优点:
1.所有的mysql列类型(字段类型)都可以被索引,即可以给任意字段设置索引
2.大大加快数据的查询速度
索引的缺点:
1.创建索引和维护索引要耗费时间,并且随着数量的增加耗费的时间也会增加,相应减慢增删改数据的速度。
2.索引页需要占用磁盘空间,创建过多索引,会造成存储空间大量占用。我们知道数据表中的数据也会有最大上线设置的,如果我们有大量的索引,索引文件可能会比数据文件更快达到上线值
3.当对表中的数据进行增加,删除,修改时,索引也需要动态维护,降低了数据维护速度,增加查询优化器负担。
索引的类型:
普通索引:基本索引类型,允许索引列中的值为空,重复。
唯一索引:值必须唯一,可以为空值。如果为组合索引,则列值组合必须唯一,主键列是特殊的唯一索引,值不可以为空、不可重复。
单列索引:使用一个列作为索引列,一个表可以有多个单列索引。
组合索引:在表中使用多个字段组合创建为索引列,只有在查询条件时使用了这些组合字段的左边字段时,索引才会被使用。
创建索引: