PRIMARY KEY,key,unique key

主键索引(必须指定为“PRIMARY KEY”,没有PRIMARY Index)、

唯一索引(unique index,一般写成unique key)、

普通索引(index,只有这一种才是纯粹的index)等,也是基于是不是把index看作了key

sql插入索引语句:

普通索引:ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

唯一索引:ALTER TABLE `table_name` ADD UNIQUE ( `column` )

主键索引:ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

当文本字段与数字进行比较时,由于类型不同,MySQL 需要做隐式类型转换才能进行比较。

默认转换规则是:

不同类型全都转换为浮点型

如果字段是字符,条件是整型,那么会把表中字段全都转换为整型

什么情况下要建立索引:

1.在经常需要搜索的列上,可以加快索引的速度。

2.主键列上可以确保列的唯一性。

3.在表与表的而连接条件上加上索引,可以加快连接查询的速度。

4.在经常需要排序(order by),分组(group by)和的distinct 列上加索引 可以加快排序查询的时间,   (单独order by 用不了索引,索引考虑加where 或加limit)。

5.尽量选择区分度高的列作为索引。

6.索引列不能参与计算,保持列“干净”。

7.尽量的扩展索引,不要新建索引

什么情况下不建立索引:

1.查询中很少使用到的列 不应该创建索引,如果建立了索引然而还会降低mysql的性能和增大了空间需求。

2.很少数据的列也不应该建立索引,比如 一个性别字段 0或者1,在查询中,结果集的数据占了表中数据行 的比例比较大,mysql需要扫描的行数很多,增加索引,并不能提高效率。

3.定义为text和image和bit数据类型的列不应该增加索引。

4.当表的修改(UPDATE,INSERT,DELETE)操作远远大于检索(SELECT)操作时不应该创建索引,这两个操作是互斥的关系。
---------------------
作者:jnshu_it
来源:CSDN
原文:https://blog.csdn.net/jnshu_it/article/details/80630054
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自www.cnblogs.com/dianzan/p/11296326.html