Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Есть таблица, в которой на данный момент >20000 записей
Из нее нужно выбирать по конкретному внешнему ключу набор записей (от 1 до нескольких тысяч). На сайте записи отображаются по страницам, т.е. только 20-50 записей. Очевидное решение LIMIT x,y, где х-номер страницы
Но при этом запрос выполняется по времени столько же, сколько и без LIMIT.
Мой запрос:
SELECT * FROM testtable
WHERE idUser=100
LIMIT 100,200
Как изменить запрос, чтобы выборка происходила быстрее?
Неактивен
А ключик на idUser то есть?
Неактивен
paulus написал:
А ключик на idUser то есть?
idUser - индекс. Первичным ключом стоит поле id - автоинкремент. А idUser - внешний ключ.
Я так понял, что происходит полная выборка по условию, а потом отсекаются Лимитом ненужные записи. А вот как выбрать только нужные?
Тут вот вычитал, что нужно выбирать подзапросом с ЛИМИТ только поле id, а потом INNER JOIN выбирать из таблицы нужные записи. Быстрее должно вроде быть. Сейчас буду пробовать.
Неактивен