PostgreSQL worst practices / Илья Космодемьянский (Data Egret)
Vložit
- čas přidán 15. 08. 2018
- Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: vk.cc/cuyIqx
--------
--------
HighLoad++ 2017
Тезисы:
www.highload.ru/2017/abstracts...
This talk is prepared as a bunch of slides, where each slide describes a really bad way people can screw up their PostgreSQL database and provides a weight - how frequently I saw that kind of problem. Right before the talk I will reshuffle the deck to draw ten random slides and explain you why such practices are bad and how to avoid running into them.
--------
Нашли ошибку в видео? Пишите нам на support@ontico.ru
сложно слушать. всё время приходится напоминать себе что это "worst practices"
согласен, сложно из-за этого воспринимать информацию
Навскидку.
1. order by замедляет выполнение запросов, требует памяти для сортировок, может еще и задействовать temp. Просто положите в таблицу отсортированные заранее данные - они всегда гарантированно будут возвращаться в таком же неизменном порядке.
2. Всегда старайтесь использовать select *, особенно в выражениях типа INSERT INTO ... SELECT * FROM ... Ведь порядок столбцов в таблицах и их количество никогда не меняется.
3. Если вам надо, например, изменить тип данных в столбце, то с этой задачей справится простой alter. Делать новый столбец, заполнять его корректными данными, потом менять местами со старым - это для ботаников. Лучше забокировать огромную таблицу и спокойно дождаться выполнения, а приложение подождет!
4. Туда же изменение большого количества данных. Делать пустую таблицу, заполнять измененными данными, потом удалять старую и подсовывать на ее место новую - это как-то слишком сложно. Помните: update всегда быстрее, чем insert! Заодно vacuum будет чем заняться.
4. Для продвинутых. Не доверяйте оптимизатору! Вы лучше знаете, где лучше индекс скан, а где фулл тейбл скан. Установите расширение для Postgres, которое добавляет хинты оптимизатора, пусть будет как в энтерпрайзном оракле! Пользуйтесь хинтами везде, где это возможно. Их много разных, попробуйте их все!
Хорошее чувство юмора. Сразу видно, человек любит свое дело.
вредные советы в инженерии - худший вариант подачи, кто шарит - веселится, кто не шарит - ловит когнитивный диссонанс от переусложнения
Кто же вас заставлял посмотреть доклад с таким названием?
Докладов и статей с Best Practices хоть жопой ешь, да и подача там такая замечательная, что начитавшиеся их кодеры/dba считают себя бесповоротно просвещенными и в итоге начинают реализовывать слайды с этого доклада))
Так и не понял где тут правильные утверждения а где нет...
там все "вредные советы". но, очевидно, формат сарказма и вредных советов плохо подходит для того чтобы делиться опытом - мозг не любит напрягаться инвертировать смысл запомненного, даже если по факту все было правильно и хорошо расписано\рассказано
Отлично! Хорошее настроение Илья мне сделал!
Отличный доклад !
вызывает когнитивный диссонанс - сколько смотрел, столько убеждал себя, что всё это неправда
Это лучший доклад за всю историю HL!) Спасибо!)
Хороший доклад! Не хватает закадрового смеха!
Это прямо как Павел Воля, только лучше 😎😎😎
Обалденно! Про PgPool2 - да-да-да!!!!, много на чём споткнулся, но научился готовить (хорош под конкретные кейсы)
Отлично, улыбнулся, переслал разарабам
На 8:15 привет ребятам из Битрикса.
Ха! Тоже про них вспомнил. Мне больше всего нравится, что они ОБЫЧНЫЕ таблицы называют highload ! Конечно, относительно их инфоблоков..
Тот самый случай, когда очень умный человек объясняет всё с сарказмом, так как для него это очевидно, а у меня в голове каша. Если что-то плохо, я хочу слышать слова: плохо, ужасно , отвратительно, запрещено.
Крайне тяжело смотреть. Если бы вредные советы были рассказаны за 5 минут, а потом в нормальном повествовании они были разобраны, лекцию можно было бы досмотреть.
Мое любимое - не уверен что по теме но все же - не использовать никаких where в запросе, а тянуть всю таблицу в память приложения и там ее перебирать по условию
Сарказм выступающего никак не отличается от обычного повествования
Получается как в видео czcams.com/video/D6FDF2mxJAo/video.html
не всегда понятно, что ирония, а что нет.
Вот на моменте с вопросами из зала стало сложно понимать, где ирония, а где истина
Что не так с orm? То что она работает медленнее чем голые оптимизированные запросы в бд?
Давайте тогда писать на ассемблер. Причем лучше и СУБД под каждый набор данных будем создавать свою оптимизированную.
Человек выступающий за 80% времени использует сарказмы, тем самым не понимая что многие люди физически не способны воспринять сарказм... Самая лучшая практика выступать. (нет)
Давно так не смеялся
Вместо шуток можно было доказать и/или показать как лучше делать
Так я все делал правильно ))))
Тяжело воспринимать, для профи видео.
Совет 21 это +1