Почему количество (*) взятие чрезвычайно долго в одной базе данных PostgreSQL, но не другом?

У меня есть две базы данных Postgres. В одном у меня есть две таблицы, каждый приблизительно с 8 000 000 строк, и количество на любом из них занимает приблизительно секунду. В другой базе данных, также Пост-ГРЭС, существуют таблицы, которые являются 1 000 000 строк, и количество занимает 10-е и одну таблицу, это - приблизительно 6 000 000 строк, и количество занимает 3 минуты для выполнения. Что определяют факторы, сколько времени это возьмет? Они находятся на различных машинах, но база данных, которая занимает больше времени, находится на более быстрой машине.

Я читал о том, как количество пост-ГРЭС является медленным в целом, но это кажется нечетным мне. Я не могу действительно использовать обходное решение, потому что я использую django, и он проводит подсчет в администраторе, который берет навсегда и делает трудным использовать.

Любая информация об этом была бы полезна.

5
задан John Bachir 15 April 2012 в 00:19
поделиться

3 ответа

Скорость подсчета зависит не только от количества строк в таблице, но и от времени, затрачиваемого на считывание данных с диска. Время зависит от многих вещей:

  • Количество строк в таблице - как вы уже сказали.
  • Количество записей на странице (если каждая запись занимает больше места, вам нужно прочитать больше страниц, чтобы прочитать то же количество строк).
  • Если страницы заполнены только частично, вам придется прочитать больше страниц.
  • Если таблицы уже кэшированы в памяти (здесь помогает наличие большего объема памяти).
  • Если таблица проиндексирована с маленьким индексом (вместо этого индекс может быть подсчитан).
  • Аппаратные различия.
  • etc....
4
ответ дан 15 December 2019 в 00:49
поделиться

Во-первых, индексы, кеши, скорость диска - все это имеет значение.

0
ответ дан 15 December 2019 в 00:49
поделиться

"Медленная таблица" правильно очищена?

Разве не используется VACUUM FULL, это только создает раздутые таблицы и индексы. ВАКУУМА вполне достаточно. ВАКУУМНЫЙ АНАЛИЗ был бы даже лучше.

И убедитесь, что автоочистка включена и правильно настроена

0
ответ дан 15 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: