Решил использовать решение из своего предыдущего комментария. Если посты генерировали только пользователи сайта, то можно вообще обойтись без сортировки (выводить по POST_ID), но они идут не в хронологическом порядке, дополнительный FLAG_SORT будет оптимальным решением
Александр По EXPLAIN все хорошо, составной индекс выбирается для запроса. Судя по длине, используются обе части ключа (OWNER_ID и CREATED), но обратная сортировка куда медленнее прямой (по индексу на основе OWNER_ID и FLAG_SORT).
Пробовал, но обрабатывается также медленно. Временное решение, которое нашел - сделать дополнительное поле FLAG_SORT, которое формируется на основе даты (FLAG_SORT = 4294967295 - CREATED) и по нему сформировать составной индекс. Тогда все работает быстро. Как понимаю, MySQL при создании индексов не использует обратную сортировку, поэтому вторая часть запроса (ORDER BY) выполняется без использования индекса.
В результате пока пришел к такому решению. Сделал дополнительное поле FLAG_SORT, которое формируется на основе даты создания (FLAG_SORT = 4294967295 - CREATED), далее по нему и OWNER_ID сформировал составной индекс. Конечно, это костыль, но с его использованием скорость обработки значительно возросла.
Попробовал составной индекс, скорость возросла, но не слишком сильно. При увеличении размеров таблицы она стабилизировалась на одном уровне, ниже не падает, но много времени занимает обратная сортировка по дате.
Если посты поступали только от пользователей сайта, то можно все отсортировать по POST_ID (они идут в хронологическом порядке), но мои данные идут миксом (часть от пользователей, часть из других соцсетей, где они собираются пакетами через API, по времени записи идут в разном порядке).
Хм, а как тогда оптимизировать обратную сортировку по дате? Опытным путем понял, что все упирается в нее, если ее убрать, то скорость возрастает в разы. Также скорость сильно зависит от количества выборки сообщений для сортировки (3000 сообщений обрабатываются в 2 раза медленнее, чем 1000).
Здравствуйте. Скажите, Вам удалось решить вопрос с получением разрешений для API Instagram? Если да, то готов купить одобренные аккаунты. В случае интереса пишите на почту webmediaart@yandex.ru
Здравствуйте. Скажите, Вам удалось решить вопрос с получением разрешений для API Instagram? Если да, то готов купить одобренные аккаунты. В случае интереса пишите на почту webmediaart@yandex.ru