主键索引(必须指定为“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
版权声明:本文为博主原创文章,转载请附上博文链接!
原文:https://www.cnblogs.com/dianzan/p/11296326.html