mysql索引意义和价值

  

索引存在的意义:

一般来说,加了索引之后,可以提高访问数据库表的速度,查询会更快。

更有利于选择语句提高性能


不要过度索引。

并不是只要加了索引就会提升性能,有可能起反作用。

 mysql索引意义和价值

什么样的字段适合创建索引,一般来说:

<李>

主键

<李>

经常需要排序的列

<李>

经常使用在哪里子句中的列


什么样的字段不适合创建索引,一般来说:

<李>

很少数据值的列(比如性别,只有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(名称、工资)

备注:,

组合索引的效率要比单索引高,但也跟数据量有关,数据多的话对比才明显

  

mysql索引意义和价值