Весна — пора подумать о деревьях. Деревья в DB это один из самых острых вопросов при работе с данными. В данном топике сравним быстродействие Materialized Path и Adjacency List методов с помощью команды «explain analize».
Читать полностью »
Рубрика «explain» - 2
Снова о деревьях
2018-04-30 в 13:57, admin, рубрики: explain, Materialized Path, postgresql, recursive, treeКак писать кривые запросы с неоптимальным планом и заставить задуматься СУБД
2017-02-01 в 7:00, admin, рубрики: activerecord, explain, explain analyze, mysql, postgresql, query optimization, грабли повсюду, кто здесь, куда делась вся память, оптимизация запросов
Всё просто. Тут можно найти «Основы разбора запросов для чайников» в случае PostgreSQL и замечательные невыдуманные примеры из продакшена о том, как не надо писать запросы на PostgreSQL и MySQL и что бывает, если их так всё-таки писать.
Основы индексирования и возможности EXPLAIN в MySQL
2016-09-08 в 16:20, admin, рубрики: explain, explain plan, highload, mysql, mysql performance, php, sql, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, Разработка веб-сайтов
Темой доклада Василия Лукьянчикова является индексирование в MySQL и расширенные возможности EXPLAIN, т.е. нашей задачей будет ответить на вопросы: что мы можем выяснить с помощью EXPLAIN'а, на что следует обращать внимание?
Многие ограничения EXPLAIN'а связаны с оптимизатором, поэтому мы предварительно посмотрим на архитектуру, чтобы понять, откуда следуют ограничения и что, в принципе, с помощью EXPLAIN'а можно сделать.
По индексам мы пройдемся очень кратко, исключительно в плане того, какие нюансы есть в MySQL, в отличие от общей теории.
Доклад, таким образом, состоит из 3х частей:
- Архитектура;
- Основы индексирования;
- EXPLAIN (примеры).
Объясняя необъяснимое. Часть 5
2016-04-20 в 7:54, admin, рубрики: explain, postgresql, sql, Разработка веб-сайтов, СУБДМы продолжаем готовиться к PG Day’16 и знакомить вас с интересными возможностями PostgreSQL.
В предыдущих постах этой серии я говорил о том, как читать вывод EXPLAIN и что означает каждая строка (операция/узел).
В заключительном посте я постараюсь объяснить, почему Постгрес выбирает «Операцию X», а не «Операцию Y».
Объясняя необъяснимое. Часть 2
2016-02-25 в 7:07, admin, рубрики: explain, postgresql, sql, Веб-разработка, СУБДРегистрация на конференцию PG Day’16 в разгаре, а мы продолжаем публиковать перевод статей Hubert Lubaczewski об explain и его основных компонентах.
В прошлый раз я писал о том, что показывает вывод explain. Теперь я хочу больше поговорить о разных типах «узлов» / операций, которые вы можете встретить в планах explain.
Читать полностью »
Объясняя необъяснимое
2016-02-10 в 10:17, admin, рубрики: explain, postgresql, sql, Веб-разработка, СУБДДрузья, мы с радостью продолжаем публикацию интересных материалов, посвященных самым разнообразным аспектам работы с PostgreSQL. Сегодняшний перевод открывает целую серию статей за авторством Hubert Lubaczewski, которые наверняка заинтересуют широкий круг читателей.
Одна из первых вещей, которую слышит новоиспеченный администратор баз данных – «используй EXPLAIN». И при первой же попытке он сталкивается c непостижимым:
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------
Sort (cost=146.63..148.65 rows=808 width=138) (actual time=55.009..55.012 rows=71 loops=1)
Sort Key: n.nspname, p.proname, (pg_get_function_arguments(p.oid))
Sort Method: quicksort Memory: 43kB
-> Hash Join (cost=1.14..107.61 rows=808 width=138) (actual time=42.495..54.854 rows=71 loops=1)
Hash Cond: (p.pronamespace = n.oid)
-> Seq Scan on pg_proc p (cost=0.00..89.30 rows=808 width=78) (actual time=0.052..53.465 rows=2402 loops=1)
Filter: pg_function_is_visible(oid)
-> Hash (cost=1.09..1.09 rows=4 width=68) (actual time=0.011..0.011 rows=4 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 1kB
-> Seq Scan on pg_namespace n (cost=0.00..1.09 rows=4 width=68) (actual time=0.005..0.007 rows=4 loops=1)
Filter: ((nspname <> 'pg_catalog'::name) AND (nspname <> 'information_schema'::name))
Что бы это могло значить?
Читать полностью »