整数 int 类型的数据(如订单号)有必要加索引吗?

2017-07-17 18:38:31 +08:00
 biocom
比如 订单编号,都是纯数字 int 类型,有必要加索引吗?加索引会增加查询速度吗?
9061 次点击
所在节点    MySQL
25 条回复
wdd2007
2017-07-17 18:44:58 +08:00
会。
BadMan
2017-07-17 18:46:00 +08:00
这不是最适合当索引主键的情况吗
biocom
2017-07-17 19:02:04 +08:00
@BadMan 主键是自增的,订单号为了不让外人看出规律,把数字做了乱序混淆。
maemual
2017-07-17 19:05:01 +08:00
如果你有根据订单号查询的需求,加索引不就是必然的了么。
l1093178
2017-07-17 19:32:19 +08:00
通常来说根据集合的 cardinality 来决定要不要加索引比较好
akira
2017-07-17 19:55:15 +08:00
数字类型本身并不会在查询的时候有特别的优化
biocom
2017-07-17 20:07:22 +08:00
@BadMan
@maemual
@akira

貌似大家意见相反?整数 int 类型,加索引会不会提高查询速度的?
scriptB0y
2017-07-17 20:12:36 +08:00
@biocom btree 不正好可以给 int 排序索引吗?

<iframe width="560" height="315" src="https://www.youtube.com/embed/coRJrcIYbF4" frameborder="0" allowfullscreen></iframe>
scriptB0y
2017-07-17 20:12:52 +08:00
@scriptB0y <amp-youtube data-videoid="coRJrcIYbF4" layout="responsive" width="480" height="270"></amp-youtube>
iyaozhen
2017-07-17 20:14:03 +08:00
和类型没啥关系吧。你要通过这个字段来库里查数据,就要加索引,快的不是一点点。
mkeith
2017-07-17 21:00:12 +08:00
订单号不加唯一键索引吗?
honeycomb
2017-07-17 21:22:12 +08:00
如果要通过订单编号来查订单,那要加。
如果不需要,那就不加。
pynix
2017-07-17 21:28:12 +08:00
PK 自动索引了吧。。。
gamexg
2017-07-17 21:53:30 +08:00
你会不会根据订单号查订单?
如果会的话就需要加索引,否则全表扫描耗时就大了。
swulling
2017-07-17 23:04:25 +08:00
@biocom 这个楼里面除了你以外其他人的意见都是一致的……
0915240
2017-07-18 00:17:25 +08:00
肯定需要加啊
msg7086
2017-07-18 00:56:43 +08:00
@biocom 并没有相反啊,大家意见一样。
msg7086
2017-07-18 00:57:42 +08:00
> 加索引会不会提高查询速度的?



> 整数 int 类型会不会提高查询速度的?

不会
akira
2017-07-18 02:05:21 +08:00
@biocom 我的表述让你误会了。
你的问题描述,对索引的理解有偏差。 是否需要加索引,不是由字段的类型来决定的,而是看你实际查询语句 来具体分析的。 回到你的问题,如果是订单号 这种重复率低,业务有大量查询需求的字段,基本上就是典型的必须做索引的字段了,不管你订单号字段是字符串还是数字。

回过来说,如果一个使用 0,1 表示男女的数字字段,字段类型也是数字,但是这种字段基本上不会做索引的, 做了索引,也不会对查询效率有任何帮助。
haython
2017-07-18 09:18:41 +08:00
MySQL 的话,自己使用 EXPLAIN 看一下就行了啊,反正我测试订单号这种场景加索引是非常有用的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/375968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX