【问题标题】:What column to index on and making table search fast要索引的列并使表搜索快速
【发布时间】:2025-11-27 15:30:01
【问题描述】:

我有一个包含游戏统计数据的表格,该表格将包含数十万行,但我需要它可以搜索游戏的统计数据页面。

我不确定在索引方面我需要做什么,以及如何在现实时间内保持表格可搜索。我通常索引作为主键的 Id 字段。我不太了解索引,所以不确定我是否做对了。

谁能给点建议?我正在使用 MySQL 数据库。

谢谢。

【问题讨论】:

  • 缓存一些常见的搜索结果可能是值得的(并声明它们可能不是完全实时的)。
  • 好吧,我将运行一个 cron 来收集每个玩家的所有结果并存储总数,这样数据库就不会失控。我希望这会产生类似的效果。

标签: mysql database indexing


【解决方案1】:

经验法则 - 您在 WHERE 子句中使用的索引列以及在 ORDER BY 中使用的列。

但是,您应该始终测试更改的效果 - 有时添加索引会导致性能问题。

我建议阅读众多关于优化 mysql 的 tutorials 之一,并按照您的表的建议。

【讨论】:

  • @freddy K. - 我不明白你在问什么。
  • 它读起来就像WHERE ORDER BY 子句中使用的列(例如:.. where column_a=1 order by column_a)。但是,如果它像 .. where column_b=1 order by column_a (以及 column_b 上的另一个索引),则该索引也应该在 column_a 上
  • @freddy K. - 我现在明白了。谢谢 - 回答澄清。