我有一个表,里面有 ~1.2m 行。它有 6 列索引,包括一个包含 url 的 varchar(255) 字段。
我需要能够扫描表以查看表中是否存在 url,因此是索引,但我想知道通过将索引大小减少到 50 左右是否会看到性能提升?
当然,这意味着它可能需要在数据库中搜索 url 时扫描更多行..但我只需要每 30 秒执行一次此查询,所以我想知道较小的索引大小是否值得它。想法?
降低可能更好的两个原因 - (假设您的指数有用)
1) 索引也会加载到内存中,因此您的索引大小可能会增长到无法完全缓存在内存中的程度。那就是你会看到性能下降的时候(所有新的硬件规格......几乎不可能有 1.2M 行,但仍然值得注意)。
2) 很多时候,仅前 'n' 个字符就足以能够快速识别每条记录。您可能根本不需要索引整个 255 个字符。
您可能不在乎的两个原因-
1) 如前所述,您可能永远不会看到您的索引增长到超出您的关键缓冲区,所以为什么要担心。
2)您将需要确定前“n”个字符,即使在此之后,性能也将小于或等于完整索引......永远不会更多。你真的需要花时间在这上面吗?可能的准确性损失值得吗?
| 归档时间: |
|
| 查看次数: |
5809 次 |
| 最近记录: |