当我有百万条记录并且必须获取50块板的记录时,如何加快mysql查询?

时间:2011-03-01 11:38:32

标签: mysql performance

说,我有10万行的表,我想用特定的Where子句获取50行的行

标准方法:从表中选择*,其中userid = 5 limit 50 offset 90500;

运行速度非常慢。 原因:首先分析所有100,000行,并在最后阶段应用限制。

任何想法如何加快这一点。任何人?

3 个答案:

答案 0 :(得分:1)

在“userid”上添加索引应该会有所帮助。

答案 1 :(得分:0)

  1. 按顺序使用主键,如galz所示,例如,假设您的表具有列ID,则按ID排序
  2. 或者,尝试使用索引字段(概括为1)
  3. 您也可以使用分区

答案 2 :(得分:0)

1 - 使用ORDER BY你可以改进,但没有那么多;

2 - 启用缓存然后从缓存中选择可以改进查询;

3 - 设置索引有帮助,但也没有那么多。