Пишите, если будут вопросы по explain. При джойнах самое важное чтобы как в том примере у второй таблицы запрашивалась только одна строка.
Ну и желательно чтобы в комментариях стояло using index. и ни в коем случае на большой выборке не было using temporary или filesort.
Ну, я бы написал этот запрос как SELECT COUNT(*) FROM table, но в целом тут оптимизировать особо нечего.
Если у вас хоть сколько-нибудь тормозит такой запрос, то постраничная навигация гарантированно положит сервер БД в момент когда сайт начнут индексировать поисковики, и все эти пляски с постраничной навигацией на 1 страницу не помогут.
Но вообще я сомневаюсь, что такой запрос в принципе может тормозить.
ааааа жесть. индекс на user_id кто будет ставить?!
Анатолий Цивилёв, ну вы если беретесь отвечать, то хотя бы минимальные знания по вопросу должны быть? Тут же в EXPLAIN черным по белому написано что индекса нет.
Сама идея с постраничной навигацией без рисования ссылок на все страницы - спорная, но имеет право на существование.
Я только хочу обратить внимание на вопрос про "ускорение". Если rowCount считается путем запроса всех записей из БД, то конкретно этот запрос ускорить просто. Вместо того, чтобы создавать чудовищную нагрузку запросом SELECT * FROM table выбирая ВСЕ СТРОКИ ЦЕЛИКОМ, нужно запрашивать только количество, запросом SELECT count(*) FROM table.
hooligan377, эту очень плохие примеры, они устарели лет на 10. Помимо всего прочего, там не показано, как сохранить результат запроса в переменную. Отсутствует аналог mysql_fetch_assoc(), когда используются подготовленные выражения. Что делает эти примеры бессмысленными.
Работать-то этот код должен, но смысла в нем - ноль. Особенно учитывая что автор потом пытается разбить единый массив обратно на строки. И потом сравнивать их. Из автора надо как-то выбить изначальную задачу, которую он решает. Я не знаю, как это сделать, поскольку он молчит, как партизан на допросе, и вместо этого продолжает задавать вопросы, один другого бредовее.
Ахаха, это же бедолага Rezzsooo с ru.SO. Как я сразу не догадался. Такое умение задавать вопросы полностью противоположные решаемой задаче не часто встречается.
Максим Тимофеев, а это ничего что эти два куска кода выдают разный результат? :)
Я прям завидую слушателям ваших вебинаров. Судя по всему, это лучше чем камеди клаб.