<legend id='KhIog'><style id='KhIog'><dir id='KhIog'><q id='KhIog'></q></dir></style></legend>
    1. <small id='KhIog'></small><noframes id='KhIog'>

    2. <tfoot id='KhIog'></tfoot>
      <i id='KhIog'><tr id='KhIog'><dt id='KhIog'><q id='KhIog'><span id='KhIog'><b id='KhIog'><form id='KhIog'><ins id='KhIog'></ins><ul id='KhIog'></ul><sub id='KhIog'></sub></form><legend id='KhIog'></legend><bdo id='KhIog'><pre id='KhIog'><center id='KhIog'></center></pre></bdo></b><th id='KhIog'></th></span></q></dt></tr></i><div id='KhIog'><tfoot id='KhIog'></tfoot><dl id='KhIog'><fieldset id='KhIog'></fieldset></dl></div>
          <bdo id='KhIog'></bdo><ul id='KhIog'></ul>

        如何在 LIMIT 子句中使用大偏移量加速 MySQL 查询?

        How can I speed up a MySQL query with a large offset in the LIMIT clause?(如何在 LIMIT 子句中使用大偏移量加速 MySQL 查询?)

          <tbody id='4qQUb'></tbody>
      1. <i id='4qQUb'><tr id='4qQUb'><dt id='4qQUb'><q id='4qQUb'><span id='4qQUb'><b id='4qQUb'><form id='4qQUb'><ins id='4qQUb'></ins><ul id='4qQUb'></ul><sub id='4qQUb'></sub></form><legend id='4qQUb'></legend><bdo id='4qQUb'><pre id='4qQUb'><center id='4qQUb'></center></pre></bdo></b><th id='4qQUb'></th></span></q></dt></tr></i><div id='4qQUb'><tfoot id='4qQUb'></tfoot><dl id='4qQUb'><fieldset id='4qQUb'></fieldset></dl></div>
        <legend id='4qQUb'><style id='4qQUb'><dir id='4qQUb'><q id='4qQUb'></q></dir></style></legend>
          1. <tfoot id='4qQUb'></tfoot>
              <bdo id='4qQUb'></bdo><ul id='4qQUb'></ul>

                  <small id='4qQUb'></small><noframes id='4qQUb'>

                  本文介绍了如何在 LIMIT 子句中使用大偏移量加速 MySQL 查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我在 LIMIT 使用大偏移量的 mysql SELECT 时遇到性能问题:

                  I'm getting performance problems when LIMITing a mysql SELECT with a large offset:

                  SELECT * FROM table LIMIT m, n;
                  

                  如果偏移量 m 大于 1,000,000,则操作非常慢.

                  If the offset m is, say, larger than 1,000,000, the operation is very slow.

                  我必须使用 limit m, n;我不能使用诸如 id > 之类的东西.1,000,000 个限制 n.

                  I do have to use limit m, n; I can't use something like id > 1,000,000 limit n.

                  如何优化此语句以获得更好的性能?

                  How can I optimize this statement for better performance?

                  推荐答案

                  也许您可以创建一个索引表,它提供与目标表中的键相关的顺序键.然后,您可以将此索引表连接到目标表,并使用 where 子句更有效地获取所需的行.

                  Perhaps you could create an indexing table which provides a sequential key relating to the key in your target table. Then you can join this indexing table to your target table and use a where clause to more efficiently get the rows you want.

                  #create table to store sequences
                  CREATE TABLE seq (
                     seq_no int not null auto_increment,
                     id int not null,
                     primary key(seq_no),
                     unique(id)
                  );
                  
                  #create the sequence
                  TRUNCATE seq;
                  INSERT INTO seq (id) SELECT id FROM mytable ORDER BY id;
                  
                  #now get 1000 rows from offset 1000000
                  SELECT mytable.* 
                  FROM mytable 
                  INNER JOIN seq USING(id)
                  WHERE seq.seq_no BETWEEN 1000000 AND 1000999;
                  

                  这篇关于如何在 LIMIT 子句中使用大偏移量加速 MySQL 查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Can#39;t Create Entity Data Model - using MySql and EF6(无法创建实体数据模型 - 使用 MySql 和 EF6)
                  MySQL select with CONCAT condition(MySQL选择与CONCAT条件)
                  Capitalize first letter of each word, in existing table(将现有表格中每个单词的首字母大写)
                  How to retrieve SQL result column value using column name in Python?(如何在 Python 中使用列名检索 SQL 结果列值?)
                  Update row with data from another row in the same table(使用同一表中另一行的数据更新行)
                  Exporting results of a Mysql query to excel?(将 Mysql 查询的结果导出到 excel?)

                    <bdo id='yughC'></bdo><ul id='yughC'></ul>
                      <tbody id='yughC'></tbody>

                      <i id='yughC'><tr id='yughC'><dt id='yughC'><q id='yughC'><span id='yughC'><b id='yughC'><form id='yughC'><ins id='yughC'></ins><ul id='yughC'></ul><sub id='yughC'></sub></form><legend id='yughC'></legend><bdo id='yughC'><pre id='yughC'><center id='yughC'></center></pre></bdo></b><th id='yughC'></th></span></q></dt></tr></i><div id='yughC'><tfoot id='yughC'></tfoot><dl id='yughC'><fieldset id='yughC'></fieldset></dl></div>

                            <tfoot id='yughC'></tfoot>

                          1. <small id='yughC'></small><noframes id='yughC'>

                          2. <legend id='yughC'><style id='yughC'><dir id='yughC'><q id='yughC'></q></dir></style></legend>