Mysql索引创建原则

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值