zoukankan      html  css  js  c++  java
  • 如何优化limit

    简单查询的LIMIT优化

    假设表message表中有10万行记录,每次取1000条。
    优化前:

    SELECT message.* FROM message LIMIT 0,1000
    SELECT message.* FROM message LIMIT 1000,1000
    SELECT message.* FROM message LIMIT 2000,1000
    ……
    SELECT message.* FROM message LIMIT 998000,1000
    SELECT message.* FROM message LIMIT 999000,1000

    优化后(利用自增主键,避免offset的使用):

    SELECT message.* FROM message WHERE uid>0 LIMIT 1000
    SELECT message.* FROM message WHERE uid>1000 LIMIT 1000
    SELECT message.* FROM message WHERE uid>2000 LIMIT 1000
    ……
    SELECT message.* FROM message WHERE uid>998000 LIMIT 1000
    SELECT message.* FROM message WHERE uid>999000 LIMIT 1000

    在笔者的机器上,优化前,SQL语句从前往后越来越慢(最后一条语句执行了150毫秒),而优化后,每条语句的耗时都是微秒级的。

  • 相关阅读:
    LeetCode#22 Generate Parentheses
    重传
    数学问题——gcdgcl
    数学问题——十进制转N进制
    数据模型
    IEEE
    格与代数系统
    数据字典
    贪心算法
    群论
  • 原文地址:https://www.cnblogs.com/huxiaocong/p/10883967.html
Copyright © 2011-2022 走看看