Задавайте вопросы, мы ответим
Вы не зашли.
Запрос работает быстро однако постоянно в slow query log лезет
Очень долго думал, но никак не придумал, прошу помощи.
Отредактированно Proger (17.01.2009 07:35:00)
Неактивен
1. Если попадает в slow query log - значит, не быстро
2. Ключики у Вас странные, поэтому не используются.
3. Запрос у Вас представляет логически два запроса: "выбрать фотографии из данной группы" и
"выбрать комментарии к фотографиям" - поэтому работает долго. Гораздо лучше разбить на два
запроса.
4. Ну и на coment ключик нужен на (pid, `DATE`) - Вы же сортируете по нему.
Неактивен
1. Ну время то небольшое
2. Документацию по составлению ключей в сети не найти нормальную.
3. Гм. То есть выбор номеров нужных фотографий, а потом выбор комментариев IN (номера фоток списком) ?
Думаю наверное придёться просто в таблицу комментариев сделать ещё поле где отмечено в какой группе фотка, иначе сложно слишком получаются запросы. Или такой как у меня или JOIN или 2 с неимоверным по длине IN. Ведь допустим у меня в фотоальбоме 4196 фотографий, IN будет весёлым...
4. Понял )
Спасибо за ответы, радует что помогаете, много где подобные темы игнорят просто.
ADD 6:20
Почему такие кривые индексы: мой мозг испоганил один форум где мне сказали что в индексе должно быть то что ты выбираешь, а не условия выборки. Потом поправили что в индексе должны быть данные которые ты выбираешь и условия выборки
Благодаря вашему же совету у меня получилось выкинуть всё из slow query log'a и пока туда вроде ничего не падает. Ещё конечно проверяю - улучшаю, но уже очень радует!!!
Отредактированно Proger (20.01.2009 06:22:51)
Неактивен
Я просто думаю, что если у Вас 4096 фотографий в категории - Вам вряд ли понадобятся все комментарии
сразу ото всех. Скорее, Вам понадобится что-то типа "последний комментарий от каждой из 50 фотографий
на этой странице". Ну и "50 следующих комментариев к этой фотографии".
Неактивен
Я в итоге добавил поле gid и стало в разы проще.
Нашел ещё кучу ляпов с индексами где в индексах извлекаемые данные вместе с условием и нет условий сортировки. Кароче сижу клепаю индексы щаз.
Я выбираю так называемую "ленту комментариев" то есть ВСЕ комментарии ко ВСЕМ фоткам во ВСЕХ категориях, которые загрузил какой-то юзер и отсортированы по дате, чтобы сразу глядеть новые коменты.
Неактивен
Есть ощущение, что даже в ленте все комментарии не нужны. Нужно "последние 100".
Неактивен
ммм в ленте обычно дают возможно листать скажем по 50 / 100 коментов за всю историю существования аккаунта. Всё равно же все коменты хранятся, дык почему бы лишний раз не показать?
add: последние 100 и никаких старше это если в RSS выгружать.
Отредактированно Proger (22.01.2009 09:08:40)
Неактивен
Да, но выводить Вы же будете все равно постранично, даже не в RSS. Ну, в любом случае, уже началось
какое-то не конструктивное обсуждение
Неактивен