2010-02-05 57 views
1

我打算创建一个包含x千行数据的mysql 5(myISAM)表。每行将有一个计数字段,&具有20个最高计数值的行将被检索很多,可能与每行更新的一比一。通常不会检索到这20行中的千行。检索'最受欢迎'表格行的高效db设计

有什么选择将选择一个有效的方法来查询20个最高计数值。数据不是是实时生活,但它有帮助!

回答

0

在计数字段上创建一个索引。完成。

+0

最快的手指第一。以防万一你想知道,我曾考虑过轮询解决方案,甚至可能只是将20个最繁忙的行复制到一个单独的表中,并将它们的更新放在那里,也许是'重新索引'20日报或其他任何内容......但始终是索引在这些情况下的正确解决方案? – rutherford 2010-02-05 00:58:55

+0

对于只有数千行的表格,索引将会很好。当你得到数百万行时,减小数据集的大小值得额外付出。 – 2010-02-05 01:01:36

-2

每五分钟,空出来,然后将前20个复制到一个单独的表。要获得前20名,请参考该表。完成!

(或者,你可以在接下来的几个小时调整您的查询,参数和指标,使之都“恰到好处”)

+0

为什么downvotes?至少我会很感激你为什么不喜欢这个想法...... – 2010-02-05 01:15:14

1

添加一个索引来计数字段,然后只是一个正常的查询:

SELECT * FROM myTable ORDER BY countField DESC LIMIT 20;