索引存在的意义:
一般来说,加了索引之后,可以提高访问数据库表的速度,查询会更快。
更有利于选择语句提高性能
不要过度索引。
并不是只要加了索引就会提升性能,有可能起反作用。
什么样的字段适合创建索引,一般来说:
- <李>
主键
李> <李>经常需要排序的列
李> <李>经常使用在哪里子句中的列
什么样的字段不适合创建索引,一般来说:
- <李>
很少数据值的列(比如性别,只有2个值,非男即女)
李> <李>字段类型文本,图像,一点(这些都是大字段,数据量比较大)
李> <李>当修改远远大于搜索的时候(更新操作多,选择操作少)
李>
几种不同的索引:
主键索引
规则:索引列不能包含重复值,且不能为空
alter table 1表添加主键(第1列(列2])
普通索引
没有规则
改变表1表添加索引索引名(第1列(列2])
创建索引索引名在表1(第1列(列2])
举例:
alter table person_info添加索引myindex(工资)
alter table person_info添加索引hisindex(名称、工资)
上创建索引yourindex person_info(工资)
上创建索引herindex person_info(工资、名称)
唯一索引
规则:索引列的值必须唯一,但可以为空
alter table表1添加惟一索引索引名(第1列(列2])
创建唯一索引索引名在表1(第1列(列2])
查看索引
显示指数从表1
desc表1,,查看表结构也能看出来
举例:
显示指数从person_info
desc表1
索引的删除
下降指数索引名在表1
下降指数yourindex person_info
单索引和组合索引
单索引:
alter table person_info添加索引myindex(工资)
alter table person_info添加索引myindex(名字)
组合索引
alter table person_info添加索引hisindex(名称、工资)
备注:,
组合索引的效率要比单索引高,但也跟数据量有关,数据多的话对比才明显