Доброго времени.
Есть таблица (порядка 10к записей) с объявлениями в ней есть ключевое поле id и несколько других полей. Нужно сделать возможность оставлять для каждого пользователя свои записи. Создал ещё одну таблицу с полями
text,
id_user и
id_obj, 2 последних поля сделал ключевыми, так как к одному объявлению может быть несколько записей, так и у одного пользователя может быть записи к нескольким объявлениям. Запрос на вывод готовой таблицы выглядит примерно так:
SELECT * FROM `Table1` s LEFT JOIN (SELECT * FROM `Table2` WHERE `id_user`=7) t ON s.`id`=t.`id_obj`
Всё было хорошо до момента пока в таблице Table2 для user=7 было мало записей, запрос выполнялся в среднем 0,5 секунд. Но когда таблица разрослась до 7 тысяч записей, этот запрос стал выполнятся около 20 секунд, что совсем ненормально. Как быть в данной ситуации?