我有一张两百多万行的table。在我的脚本中,我需要在0.0001秒内完成查询。但是现在大量的行数将其增加到了0.1秒。我的表结构如下:
chat_id | user_id | score
在每个查询中,我只想得到一个用户在聊天中的得分,我在查询中使用limit1。对于表开头的用户,查询在0.0001秒内完成,但是对于表末尾的用户,有时需要0.5秒才能返回结果。我正在考虑将表拆分为多个具有聊天室ID的表。例如:
聊天桌
user_id | score
chat2\表
user_id | score
这导致每个表中的行要少得多(比如一个表中有1k行),并且查询速度会根据需要提高。但我在想,难道没有办法在一张table上得到同样的表现吗?我听说过分区,但我对它了解不多,而且我只有一个磁盘。
1条答案
按热度按时间xwmevbvl1#
我认为只要添加一个包含chat\u id和user\u id列的索引就足够了。事实上,如果(char\u id,user\u id)对总是唯一的,您可以将它们生成一个复合主键。如果您的表还没有主键,可以添加它: