11 | 索引:怎么提高查询的速度?
索引是什么?
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了提高查询速度的关键——索引,重点讨论了单字段索引和组合索引的创建和使用。通过实例演示了添加索引后查询速度的显著提升,并通过EXPLAIN关键字展示了索引对SQL语句执行细节的优化作用。文章还解释了组合索引的原理,强调了筛选条件的顺序对索引的利用影响。此外,总结了索引的成本和注意事项,提醒读者在创建索引时需要综合考虑存储空间和数据操作开销。最后,提出了一个思考题,引导读者思考如何对销售统计表建立合适的索引。整体而言,本文内容丰富,适合技术人员深入了解索引的创建和使用原理。
《MySQL 必知必会》,新⼈⾸单¥59
全部留言(17)
- 最新
- 精选
- 朱晓峰置顶你好,我是朱晓峰,下面我就来公布一下上节课思考题的答案: 上节课,我们学习了数学函数、字符串函数和条件判断函数。下面是思考题的答案: 计算会员积分,我们可以假设actualvalue>=0,这样的话就可以使用求余函数MOD来代替FLOOR: FLOOR(acutalvalue)替换成actualvalue - MOD(actualvalue,1)2021-04-215
- giteebravoCREATE INDEX index_trans ON demo.trans (transdate(10)); ——括号里面的 10 有什么具体含义吗?
作者回复: 这里的10,表示用日期时间的前10位数据创建索引
2021-04-01410 - Devo我会选择(商品编号,[门店编号],销售日期)的联合索引,主要依据是商品编号一般是等值查询且区分度较高,门店编号这个字段我觉得可以看具体查询场景选择,销售日期一般是范围,放在末位直接扫链表效果较好,请老师指正,谢谢!
作者回复: 建议还是先创建单字段索引,使用率比较高,如果创建联合索引,可以考虑把门店编号放在最前面,原因是一般查询会遵循从大范围到小范围逐步递进的原则
2021-04-0126 - lesserror总结一下这一讲的收获吧。 MySQL 最多支持由 16 个字段组成的组合索引。 组合索引的所有组成字段都被查询条件用到,且符合最左匹配原则,查询效率有可能会比单字段索引快! 关于索引这块的知识,建议去了解一下B+树的相关概念,会更容易理解索引的内部运行机制。比单纯背结论更加有效,并且会根深蒂固!
作者回复: 说得好
2021-04-0122 - giteebravo在为字段 itemnumber 创建索引 index_trans_itemnumber 后,实际读取的记录数下降了 80% (与使用索引 index_trans 相比),但为什么查询速度反而下降了 0.08 秒呢?
作者回复: 你是不是说课上的例子,使用index_trans索引比使用index_trans_itemnumber要更快呢?课上的例子中,优化器除了使用索引之外,使用index_trans索引的时候,还使用了MRR(顺序磁盘读取策略),这样综合的效果比单纯使用index_trans_itemnumber更快一些。
2021-04-012 - 彭彬CREATE INDEX index_trans ON demo.trans (transdate(10)); 执行上述语句出错,提示transdate不是字符串
作者回复: 这个地方确实错了,应该是“CREATE INDEX index_trans ON demo.trans (transdate); ”,索引应该使用字段名。我已经请后台进行改正,非常感谢你指出我的错误。
2021-09-2221 - 重洋对字段a、b、c建立组合索引,选择a、b为查询条件时,此时组合索引的效果相当于只对a、b建立组合索引吗?
作者回复: 是的,这里要注意的是组合索引与字段的顺序有关。
2021-08-021 - SharpBB单字段索引 create index 索引名 on table 表名(字段); 注意 创建主键约束/唯一约束 会自动创建主键索引 唯一性索引 经常被筛选的字段当索引 组合索引 create index 索引名 on table 表名(字段1,字段2); 删除索引 DROP INDEX 索引名 ON 表名; 如果是主键 不能直接删除 得先去掉主键 ALTER TABLE 表名 DROP PRIMARY KEY;
作者回复: 好的
2022-02-10 - 青石雨巷CREATE INDEX 索引名 ON TABLE 表名 (字段); 这里TABLE字段要删掉,容易让别人产生误解
作者回复: 说得很对,这里“TABLE”不是关键字,容易产生误解,不够严谨,我已经请后台去掉“TABLE”,感谢你的指正。
2021-12-01 - 木木老师你好,咱课程中提到的数据有提供吗? 方便跟着操作练习
作者回复: 课程中用到的数据都是实际项目中的数据,是无法提供的。
2021-11-072