|
explain и кол-во записей в результирующем множестве
|
|||
---|---|---|---|
#18+
Доброго дня, коллеги. Вопрос по оценочному количеству записей в результирующем множестве при выполнении команды explain: Есть следующие таблицы: - таблица договоров (CONTRACT) в ней ~6.2 млн записей. - таблица подразделений (TMP_DEPS_ID), она не временная, а постоянная, в ней ~3200 записей. explain по связке этих таблиц показывает 6067061 записей, т.е. примерное кол-во записей в табл CONTRACT: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Реальное кол-во записей возвращаемых запросом - 3298016 Код: sql 1. 2. 3. 4. 5.
При этом, если добавить дополнительное условие в where, то explain показывает правильное кол-во записей: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Перенос TMP_DEPS_ID в условие where результата не даёт: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Столбцы по которым выполняется связывание (CONTRACT.DEPARTMENT_ID и TMP_DEPS_ID.ID) проиндексированы. vacuum analyze выполнен. Это нормальное поведение, или есть какой-либо способ получить более близкое к реальности значение кол-ва строк в запросе в explain? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 03:06 |
|
explain и кол-во записей в результирующем множестве
|
|||
---|---|---|---|
#18+
sKot, это нормальное поведение, а чем вас не устраивает эта оценка (6М против 3М)? обычно такое небольшое расхождение к проблемным планам не приводит, гораздо хуже когда отличается хотя бы на порядок. немного поправить возможно получится (не факт), подняв stats target для contract.department_id, тем самым собирая больше статистики, но вот надо ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 09:24 |
|
explain и кол-во записей в результирующем множестве
|
|||
---|---|---|---|
#18+
Alexius, Спасибо, буду дальше смотреть что можно придумать. Я хотел использовать как примерный count(*) для отображения в пользовательском интерфейсе. Обычный count(*) выполняется ~8 сек, правда, на более сложном запросе. Это я для примера взял простой запрос, т.к. оценки по count'у абсолютно одинаковые. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 10:25 |
|
|
start [/forum/topic.php?fid=53&fpage=53&tid=1995680]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 279ms |
0 / 0 |