Mysql 要在哪个列上建立索引并快速搜索表

Mysql 要在哪个列上建立索引并快速搜索表,mysql,database,indexing,Mysql,Database,Indexing,我有一个表,持有一场比赛的统计数据,这个表将有数十万行,但我需要它是为游戏的统计页面搜索 我不确定我需要做些什么来建立索引,以及如何在现实的时间内保持表的可搜索性。我通常索引作为主键的Id字段。我真的不懂索引,所以我不确定我是否做了正确的事情 谁能给点建议吗?我使用的是MySQL数据库 谢谢。经验法则-索引您在WHERE子句中使用的列以及在ORDER BY中使用的列 但是,您应该始终测试更改的效果—有时添加索引可能会导致性能问题 我建议阅读关于优化mysql的众多建议中的一个,并遵循表中的建议。

我有一个表,持有一场比赛的统计数据,这个表将有数十万行,但我需要它是为游戏的统计页面搜索

我不确定我需要做些什么来建立索引,以及如何在现实的时间内保持表的可搜索性。我通常索引作为主键的Id字段。我真的不懂索引,所以我不确定我是否做了正确的事情

谁能给点建议吗?我使用的是MySQL数据库


谢谢。

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

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


我建议阅读关于优化mysql的众多建议中的一个,并遵循表中的建议。

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

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


我建议阅读关于优化mysql的众多建议中的一个,并在表格中遵循建议。

缓存一些常见的搜索结果(并声明它们可能不是完全实时的)可能是值得的,我将运行一个cron来收集每个播放器的所有结果并存储总数,这样数据库就不会失控。我希望这会有类似的效果。缓存一些常见的搜索结果(并声明它们可能不是完全实时的)可能是值得的。好吧,我将运行cron来收集每个玩家的所有结果并存储总数,这样数据库就不会失控。我希望这会有类似的效果。@freddy K.-我不明白你在问什么。它读起来像是
WHERE
ORDER BY
子句中使用的列(比如:
。WHERE column\u a=1 ORDER BY column\u a
)。但是如果索引类似于
,那么它也应该位于列a上。。其中,column_b=1 order by column_a
(以及
column_b
上的另一个索引)@freddy K.-我现在明白了。谢谢-答案澄清。@freddy K.-我不明白你在问什么。它读起来像是
WHERE
ORDER BY
子句中使用的列(比如:
。WHERE column\u a=1 ORDER BY column\u a
)。但是如果索引类似于
,那么它也应该位于列a上。。其中,column_b=1 order by column_a
(以及
column_b
上的另一个索引)@freddy K.-我现在明白了。谢谢-回答澄清。