Задать вопрос
  • Как правильно подсчитать примерное количество строк через EXPLAIN?

    Melkij
    @Melkij
    PostgreSQL DBA
    Поизучайте как именно работает статистика планировщика. Ну, например, https://habrahabr.ru/company/pgdayrussia/blog/329542/
    Есть default_statistics_target (дефолт 100) и именно столько штук самых популярных конкретных значений отслеживается в most_common_vals и most_common_freqs. Что можно сказать про все остальные значения? (число разных значений есть - n_distinct) Что они как-то могут быть распределены по (100%-sum(most_common_freqs)) оставшимся строкам. В сущности, в статистике нет других значений кроме most_common_vals и потому нельзя сказать, есть ли вообще хоть одно искомое значение. А как они там распределены, если есть? Да кто их знает. Планировщик предполагает, что примерно равномерно.

    Соответственно можно крутить default_statistics_target для конкретного поля или индекса.
    Ответ написан
    1 комментарий