2016-03-17 2 views
2

У меня есть таблица с 450000 записями в MySQL. Запрос ниже стоит около 3 секунд. Можно ли снизить стоимость времени?Можно оптимизировать SQL «порядок по лимиту» с большим смещением

SELECT * FROM table order by id desc limit 400000, 8000 
+1

Возможно, «заказ по id asc limit 42000, 8000'? – jarlh

+2

почему 'select *'? просто выберите поля, которые вам действительно нужны. 'select firstName, lastName ...' – Jeff

+0

вы можете установить LIMIT небольшое значение вместо 8000 – PravinS

ответ

0

Предполагая id индексируется, то есть не много вы можете сделать - независимо от того, что было предложено выше. Тем не менее, я удивлен, что это медленно ...

SELECT COUNT(*) FROM my_table; 
+----------+ 
| COUNT(*) | 
+----------+ 
| 450000 | 
+----------+ 
1 row in set (0.12 sec) 

SELECT * FROM my_table ORDER BY i DESC LIMIT 400000,8000; 
... 
8000 rows in set (0.20 sec) 
Смежные вопросы