mysql索引设计策略_MySQL索引设计一些策略_MySQL

前言

索引加快了检索的速度,但是却降低了数据列里插入、删除以及修改数值的速度。也就是说,索引降低了许多涉及写入的操作速度。之所以出现这种情况,是由于写入一条数据不仅仅是要写入到数据行,还需要所有的索引都作出相应的改变如更新或是重新编排。MySQL在为检索生成一个执行方案时候,要仔细对索引进行计算,创建过多的索引对查询优化程序就加上了更多的工作,而且当你有太多的索引的时候,MySQL还有可能无法选出最好的索引来使用。于是在选择索引的时候,需要采取一些策略。

策略1

在选择索引列的时候,尽量为用搜索、分类或者分组的数据列编制索引,不要为作为输出的数据列编制索引。换句话说,最合适有索引的数据列是那些在where字句中出现的数据列,在连接字句中给出的数据列、或是在order by或是group by子句中出现的数据列。

策略2

综合考虑数据列的维度势。数据列的维度,等于它所容纳的非重复值的个数。

策略3

尽量选择短小的值进行索引

短小的值可以让比较操作更快完成,加快索引查询速度。

短小的值可以让索引的体积更小,减少磁盘I/O活动

短小的键值意味着键缓存里的索引块可以容纳更多的键值,让MySQL可以在内存中容纳更多的键,这样较少了I/O活动的概率。

InnoDB存储引擎采用的聚族索引。所谓的聚族索引就是把数据行和主键索引集中保存在一起,其他的索引都是二级索引,它们保存着主键值和二级索引值。对于二级索引查找过程是先通过二级索引找到主键,然后通过主键找到对应的数据。选择短小的值进行索引,可以减少二级索引占据的空间。

策略4

为字符串值的前缀添加索引

如果打算给一个字符串列添加索引,尽可能的给出前缀长度。

策略5

不要建立过多的索引

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值