PHP程序员学习笔记|如何学习PHP

个人总结的PHP学习方法


mysql如何建立合适的索引

2017-6-28 0phpcom 经典文章


在mysql数据库中,其实建索引也是一门学问,一个表中,索引并不是越多越好,而是适合你的业务才最重要。那么建立索引的时候,我们应该从以下几点去考量。


1. 索引字段越小越好,像varchar(10)肯定比text类型的效果要好。


2. 经常需要作为where、group by、order by等条件的时候,要为该字段建立索引。


3. 当要建立联合索引的时候,离散度较大的列放到前面。打个比方,如果要建立一个姓名(name)和年龄(age)的联合索引,肯定要把name放到前面(index(name,age)),因为age的范围最多不会超过0-120(全世界没几个人能活到120岁以上吧),而name的情况就有成千上万种了。放到前面的好处就是第一次就能筛掉一大批数据,这样更有利查询的效率。


4. 只给经常作为查询条件的字段建立索引,因为索引并不是越多越好,多了首先会增加磁盘开销,然后查询的时候,mysql引擎也要去判断该使用那个索引,再就是索引多了,对update、insert、delete的效率也会造成影响。


总之,建立索引的时候也要认真思考,才能让表结构更加完美。

« mysql表垂直分割的原则 | 分析为什么mysql中like模糊查询效率低»
发表评论:


站点统计
  • 建站日期: 2015-2-10 18:22
  • 运行时间: 3324 天
  • 日志总数: 221 篇
  • 置顶日志: 0 篇
  • 草稿数目: 15 篇
  • 待审文章: 0 篇
  • 页面数量: 0 个
  • 评论数量: 53 条
  • 微语数量: 5 条
  • 微语评论: 0 条
  • 友链数量: 1 个
  • 加密文章: 1 篇
  • 分类总量: 10 个
  • 父分类数: 10 个
  • 子分类数: 0 个
  • 用户数量: 1 人
  • 管理员数: 1 人
  • 驻站作者: 0 位
  • 标签数量: 11 个
  • 附件总量: 223 件
  • 最后发表: 2021-5-8 16:17



订阅Rss