AbyssalSwamp  ActivaUser
» Guest:  Register | Login | 会员列表

RSS subscription to this AbyssalSwamp  

Previous thread Next thread
     
Title: mysql - 要获取最后 10 条记录,将 'LIMIT' 添加到 MySQL 查询使其更快?  
 
Phoenix001





UID 305208
Digest 0
Points 0
Posts
码币MB 0 Code
黄金 0 Catty
钻石 0 Pellet
Permissions 10
Register 2019-5-27
Status offline
mysql - 要获取最后 10 条记录,将 'LIMIT' 添加到 MySQL 查询使其更快?

 

有人可以解释一下,如果我想获取最后 10 条记录,将“LIMIT”添加到 MySQL 查询会使其更快吗?
喜欢

SELECT 
    *FROM
    `table`ORDER BY id DESCLIMIT 50;


有没有其他方法可以获取最后 10 条记录,或者速度更快?            

            

          

limit 的问题是否必须订购全部 表中的行在只返回最后 50 行之前,所以它总是会很慢,并且会随着表的增长而变慢(不可扩展)。

获得最后 50 个的最快方法是:

SELECT 
  *FROM
  `table`WHERE id > (SELECT MAX(id) FROM `table`) - 50


这将使用 id 上的索引获得最大 id 并再次获得前 50 名。

您还应该尝试稍微复杂一点但可能更好地优化的方法:

SELECT 
  *FROM
  `table`WHERE id BETWEEN (SELECT MAX(id) FROM `table`) - 49
    AND (SELECT MAX(id) FROM `table`)


比较实际运行时间并选择最快的。            

关于mysql - 要获取最后 10 条记录,将  'LIMIT' 添加到 MySQL 查询使其更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48071327/


2022-3-2 12:56#1
View profile  Blog  Send a short message  Top
 
Phoenix001





UID 305208
Digest 0
Points 0
Posts
码币MB 0 Code
黄金 0 Catty
钻石 0 Pellet
Permissions 10
Register 2019-5-27
Status offline
RE:mysql - 要获取最后 10 条记录,将 'LIMIT' 添加到 MySQL 查询使其更快?

1.png

2022-3-2 13:01#2
View profile  Blog  Send a short message  Top
     


  Printable version | Recommend to a friend | Subscribe to topic | Favorite topic  


 


All times are GMT+8, and the current time is 2026-1-14 01:36 Clear informations ->sessions/cookies - Contact Us - CAFFZ - ZAKE