mysql - 将列长度从 varchar 18 更改为 varchar 8 会大大提高搜索速度吗?

标签 mysql sql performance

我有一个约 50 万行的 Mysql 数据库。我有一列基本上是一个短 url,用作每一行的索引。我可以使索引为 8 个字符/varchar 或 18 个。我想知道额外的 10 个字符是否真的会大大减慢我的搜索速度。 varchar 18 的优点是我不必生成短 url。然而,如果我使用 varchar 或 char 8,我会的。该索引将用于检索评论、更新条目等。无论如何,该索引都是唯一的。

谢谢

最佳答案

并不剧烈。 B+-tree 索引中的搜索速度随索引读取次数的变化而变化,随 logx(N) 而变化, 其中 N 是数量索引条目的数量,x 是每个索引 block 的键数,这又与它们的长度成反比。可以看出这是一个次线性关系。

关于mysql - 将列长度从 varchar 18 更改为 varchar 8 会大大提高搜索速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25731409/

相关文章:

php - 传输 RFID 标签编号到 mysql

MySQL GROUP BY - 每组显示 X 个结果

php - 基于 php 变量的唯一图像 url

python - 在Python中打印美元符号

mysql - 添加一个新的 MySQL Col,其行依赖于其他行

java - 使用 Hibernate 定义两种数据源 - 一种是关系型数据源,一种是 NoSQL 数据源

c# - 我们可以改进这个 o(mn) 的 bin 计数算法吗?

objective-c - 设置 frame.origin 与 CGAffineTransformMakeTranslation 之间的性能差异

r - 预先计算长度未知的向量 - 我应该 "grow"吗?

mysql - 从 SQlite 中选择使用 EPOCH 时间的过去 24 小时