Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Помогите, пожалуйста оптимизировать запрос.
Есть большая таблица с записями пользователей, InnoDB: 11 820 627 (7.5GB)
Так же есть таблица друзей, кто с кем дружит.
Нужно показать последние записи друзей (как лента) и отсортировать их так, чтобы последние были вверху.
Неактивен
А зачем Вы пишете левое объединение, а потом фиксируете поле в правой таблице?
И покажите EXPLAIN, пожалуйста
Есть ощущение, что FORCE INDEX тут лишний, а вот индекса по (user_id, id) не хватает.
Неактивен
вот что у меня получилось:
индекс uiddate (user_id,date)
Неактивен
user_id — число, зачем Вы ставите кавычки? Структуру таблички покажите,
есть ли NULL?
Из-за того, что есть Using where — каждая полученная строка проверяется
дополнительно на соответствие условиям. Поэтому при больших LIMIT нельзя
сразу выбрать нужные строки по индексу (просто не понятно, какие строки
надо выбрать); нужно понять, зачем используется Using where. Как правило,
это неправильные типы данных или NULL-столбцы там, где по смыслу NULL
нет.
Неактивен
Вот структура таблицы:
Неактивен
Ключик uiddy лишний (является левой частью uiddate); без кавычек в запросе
пробовали?
Неактивен