Skip to content

Instantly share code, notes, and snippets.

View llybin's full-sized avatar

Lev Lybin llybin

View GitHub Profile
@dmitry-naumenko
dmitry-naumenko / get_unused_indexes_en.sql
Created January 10, 2020 10:01
Identify unused indexes.
SELECT
idstat.relname AS TABLE_NAME,
indexrelname AS index_name,
idstat.idx_scan AS index_scans_count,
pg_size_pretty(pg_relation_size(indexrelid)) AS index_size,
tabstat.idx_scan AS table_reads_index_count,
tabstat.seq_scan AS table_reads_seq_count,
tabstat.seq_scan + tabstat.idx_scan AS table_reads_count,
n_tup_upd + n_tup_ins + n_tup_del AS table_writes_count,
pg_size_pretty(pg_relation_size(idstat.relid)) AS table_size
@igorpronin
igorpronin / gist:d1cdea867adc091668e78e5a6eba0a00
Last active January 12, 2023 22:38
Как делать код-ревью, статья понравилась
https://toster.ru/q/276441
Отсюда, есть и другие рекомендации от др авторов.
Я когда делаю Code Review критерии следующие:
* Безопасность:
- Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
- Никаких trigger_error, только исключения.
- Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
- Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.