17.01.2019, 04:07
(
Последний раз редактировалось Mexanizm93; 17.01.2019 в 05:06.
)
Quote:
Стоило озвучить то, какие данные у тебя есть и что ты хочешь добиться в результате запроса. Вполне возможно, что есть более оптимальный вариант.
Хотя если задачей является "развернуть" результат, то что мешает сделать это прямо во время его обработки? То бишь: PHP код:
|
first_index получен первым результатом на странице. last_index соответственно последним. Как рамки для вывода результата. Получать от и до.
Про переворот результата в коде я догадывался, но хотелось возложить эту задача на БД.
Щас сотру весь этот бред в коде и напишу по новой.
UPD:
Сделал с помощью LIMIT отступ и сколько элементов выводить, но есть вопрос. Чем больше записей в таблице, тем большее время бд будет затрачивать на отступ. Выход ли делать подобное через LIMIT ?
Цитата:
Quote:
Выборки со смещением (LIMIT/OFFSET) могут работать очень медленно при больших значениях смещений. Это происходит по причине того, что MySQL перебирает и отбрасывает все строки результата, пока их количество не будет равно значению OFFSET. Например: SELECT * FROM articles ORDER BY id LIMIT 20000, 20 Такой запрос будет использоваться для показа 1000й страницы статей (по 20 статей на страницу). В таком случае, MySQL переберет и отбросит 20 тыс. записей до того, как вернет 20 нужных нам. Естественно, с ростом номера страницы, запрос будет работать все медленнее. |