【问题标题】:How to speed up the mysql query when I have million records and have to fetch record in slabs of 50?当我有百万条记录并且必须以 50 条为单位获取记录时,如何加快 mysql 查询速度?
【发布时间】:2011-07-06 10:54:56
【问题描述】:

假设我有 100,000 行的表,我想使用特定的 Where 子句获取 50 行的平板中的行

执行此操作的标准方法:select * from table where userid=5 limit 50 offset 90500;

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

任何想法如何加快速度。有人吗?

【问题讨论】:

  • 订单重要吗?如果你ORDER BY主键可能会更快。
  • 有什么特殊原因需要钻到偏移90,500?

标签: mysql performance


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    1. 按照 galz 的说法,在 order by 中使用主键,例如 order by id 假设您的表具有列 id
    2. 或者,尝试使用索引字段(1 的泛化)
    3. 您也可以使用分区

    【讨论】:

      【解决方案3】:

      1 - 使用 ORDER BY 可以提高,但效果不大;

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

      3 - 设置索引有帮助,但也没什么用。

      【讨论】:

        猜你喜欢
        • 2020-05-31
        • 1970-01-01
        • 1970-01-01
        • 2013-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-14
        相关资源
        最近更新 更多