них имеют foreign keys друг на друга. Запросы занимают часто много десятков секунд.
Как можно было бы улучшить производительность бд? Какие-то индексы построить, как-то правильно нормализовать или денормализовать бд, может стоит ещё что настроить? Ещё есть проблема пагинации, у меня сейчас она через limit и offset и тоже медленно работает, может есть советы как ускорить пагинацию? У меня постгрес.
Построить какие-то индексы, как-то правильно нормализовать бд, ещё что настроить. Паджинация не нужна, выбросить.
Ну если не нужна, то мне миллионы строк высылать? А нормализация ведь увеличит джоины и замедлит ещё сильнее запросы?
Выбирай 101 строку. Если в наборе 100 и менее строк, не пишешь ничего. Если в наборе 101 строка, пишешь, что есть ещё данные и клиент может уточнить параметры поиска для получения более специфичных данных, нужных ему.
Нормализация ни-че-го не замедляет. Join -ы - очень лёгкие части запросов, выполняются только по индексам.
я вот с этим не согласен. Даже с качественно собранной статистикой и нужными индексами Oracle с большими таблицами с партициями может выбрать довольно хреновый план. Поэтому у них куча хинтов для исправления этой ситуации.
Оракл? На join хреновый план? Да НИКОГДА!
Значит, не хрен было партицировать...
а как обслуживать таблицу в которую идет запись 24 часа в сутки 7 дней в неделю. команда delete удаляет сутки за сутки и грузит бд. ?
А как тебе тут партишны помогут?
Пуст грузит немного, не страшно
Удаляешь партицию и все. За секунду несколько милионов записей ушли.
Много грузит. Даже если в цикле - это уже ощутимо.
Много это сколько?
Обсуждают сегодня