博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql创建索引的原则
阅读量:5042 次
发布时间:2019-06-12

本文共 1188 字,大约阅读时间需要 3 分钟。

在mysql中使用索引的原则有以下几点:

 

1、 对于查询频率高的字段创建索引;

 

2、 对排序、分组、联合查询频率高的字段创建索引;

 

3、 索引的数目不宜太多

      原因:a、每创建一个索引都会占用相应的物理控件;

            b、过多的索引会导致insert、update、delete语句的执行效率降低;

 

4、若在实际中,需要将多个列设置索引时,可以采用多列索引

      如:某个表(假设表名为Student),存在多个字段(StudentNo, StudentName, Sex, Address, Phone, BirthDate),其中需要对StudentNo,StudentName字段进行查询,对Sex字段进行分组,对BirthDate字段进行排序,此时可以创建多列索引

      index index_name (StudentNo, StudentName, Sex, BirthDate);      #index_name为索引名

      在上面的语句中只创建了一个索引,但是对4个字段都赋予了索引的功能。

       创建多列索引,需要遵循BTree类型,

       即第一列使用时,才启用索引。

       在上面的创建语句中,只有mysql语句在使用到StudentNo字段时,索引才会被启用。

       如:     select * from Student where StudentNo = 1000;      #使用到了StudentNo字段,索引被启用。

       可以使用explain检测索引是否被启用

        如:explain select * from Student where StudentNo = 1000;

 

5、选择唯一性索引

        唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。

 

6、尽量使用数据量少的索引

       如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文检索需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。

 

7、尽量使用前缀来索引

     如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT和BLOG类型的字段,进行全文检索会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。

 

8、删除不再使用或者很少使用的索引.

     表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。管理员应当定期找出这些索引,将它们删除,从而减少索引对更新操作的影响

 

PS:部分内容借鉴与https://blog.csdn.net/csdnones/article/details/50412603

转载于:https://www.cnblogs.com/helloworldlx/p/8651583.html

你可能感兴趣的文章
[CF1042F] Leaf Sets
查看>>
轮播图代码分享
查看>>
hdu 4632 回文子序列计数
查看>>
二叉搜索树的后序遍历序列
查看>>
多线程的通信方法
查看>>
VM Workstation 11 安装包
查看>>
mongodb的基本操作
查看>>
Reverse Nodes in K-Group
查看>>
golang 线程与通道
查看>>
Deep learning chapter10(part2)
查看>>
C++ 最简单的日志类
查看>>
Unity3d dotween
查看>>
Java深入学习之NIO(1)
查看>>
51单片机基于定时器0的硬件延时代码
查看>>
HTML & CSS: The Good Parts
查看>>
Perl语言编程(第三版) 大骆驼书 网络最完美版 英文原版+中文文字版PDF下载
查看>>
Java语言概述
查看>>
mysql批量插入运用
查看>>
WCF与WebService的区别(转)
查看>>
usaco Broken Necklace(dp)
查看>>