#ml #statistics #bayesian #courses
Максим Кочуров на экономе МГУ этой осенью читал магистерский курс “Practical Bayes” (прикладные Байесовские методы). Рассказывал там про подходы к моделированию, аб тестирование, иерархичные модели, Гауссовские процессы, оценку consumer lifetime моделей. Теперь у курса есть обновляемая страничка с презентациями
https://ferrine.github.io/pages/practical-bayes/
Максим Кочуров на экономе МГУ этой осенью читал магистерский курс “Practical Bayes” (прикладные Байесовские методы). Рассказывал там про подходы к моделированию, аб тестирование, иерархичные модели, Гауссовские процессы, оценку consumer lifetime моделей. Теперь у курса есть обновляемая страничка с презентациями
https://ferrine.github.io/pages/practical-bayes/
In Search of the Holy Posterior
View the blog.
#ml #dl #interview
Вопросы для подготовки к интервью: https://github.com/alexeygrigorev/data-science-interviews
И еще один репо с реализациями моделей из статей: https://github.com/MaximeVandegar/Papers-in-100-Lines-of-Code
Вопросы для подготовки к интервью: https://github.com/alexeygrigorev/data-science-interviews
И еще один репо с реализациями моделей из статей: https://github.com/MaximeVandegar/Papers-in-100-Lines-of-Code
GitHub
GitHub - alexeygrigorev/data-science-interviews: Data science interview questions and answers
Data science interview questions and answers. Contribute to alexeygrigorev/data-science-interviews development by creating an account on GitHub.
Forwarded from Записки MLEшника (Egor)
Прочитал книжку Чистый Python
Выбор на нее пал из-за высоких оценок, и потому что коллеги устроили ее совместное чтение. На них я не пошел, но интерес возник 👀
Книга родилась из серии публикаций автора в твитере. Этакий сборник фишек и советов. Кстати, у него прикольный блог.
На мой взгляд, фраза "Тонкости программирования для профи" не подходит книге. Я ее интерпретирую так: если ты профи, то сейчас узнаешь тонкости программирования. А по факту тут скорее: прочтешь и узнаешь тонкости, которые знают профи.
Мне понравилось, что после каждой главы есть ключевые выводы, где прямо говорят - если А, то используй list, если B, то deque. Люблю когда прямо и по делу. Потом можно использовать как справочник.
В общем, если вы понимаете декораторы, итераторы, распаковку и использовали defaultdict, то я бы прошел мимо. А если нет, то вполне хорошая книга, чтобы познакомиться без глубокого погружения в детали.
Выбор на нее пал из-за высоких оценок, и потому что коллеги устроили ее совместное чтение. На них я не пошел, но интерес возник 👀
Книга родилась из серии публикаций автора в твитере. Этакий сборник фишек и советов. Кстати, у него прикольный блог.
На мой взгляд, фраза "Тонкости программирования для профи" не подходит книге. Я ее интерпретирую так: если ты профи, то сейчас узнаешь тонкости программирования. А по факту тут скорее: прочтешь и узнаешь тонкости, которые знают профи.
Мне понравилось, что после каждой главы есть ключевые выводы, где прямо говорят - если А, то используй list, если B, то deque. Люблю когда прямо и по делу. Потом можно использовать как справочник.
В общем, если вы понимаете декораторы, итераторы, распаковку и использовали defaultdict, то я бы прошел мимо. А если нет, то вполне хорошая книга, чтобы познакомиться без глубокого погружения в детали.
Forwarded from Градиентное погружение (Максим Герасимов)
💻 Russian Texts Statistics (ruts)
👉 Библиотека разработанная для извлечения признаков из произвольного текста. Работает на русском, но ничего не мешает применить для другого языка.
В комплект входят:
• Базовые статистики (количество слогов, букв, пробелов и тд)
• Метрики удобочитаемости (уже писал о них)
• Метрики лексического разнообразия (Индекс Симпсона и тд)
• Морфологические статистики
Визуализации:
— Закон Ципфа
— Литературная дактилоскопия
— Дерево слов
Подойдет в качестве экстрактора для фича инжиниринга к обычному tf-idf или эмбеддингам.
github
👉 Библиотека разработанная для извлечения признаков из произвольного текста. Работает на русском, но ничего не мешает применить для другого языка.
В комплект входят:
• Базовые статистики (количество слогов, букв, пробелов и тд)
• Метрики удобочитаемости (уже писал о них)
• Метрики лексического разнообразия (Индекс Симпсона и тд)
• Морфологические статистики
Визуализации:
— Закон Ципфа
— Литературная дактилоскопия
— Дерево слов
Подойдет в качестве экстрактора для фича инжиниринга к обычному tf-idf или эмбеддингам.
github
#interview #courses
Нашёл в одном из комментариев что-то интересное для DS и MLE
https://github.com/Extremesarova/data_science_resources
Нашёл в одном из комментариев что-то интересное для DS и MLE
https://github.com/Extremesarova/data_science_resources
Forwarded from Борис опять
# Минимальные знания Software Engineering для Data Scientist 1/3
## Git
Интерактивный туториал
Краткий курс по Git от Github
Git (или другая VCS) каждый день использует любой адекватный программист. Стоит инвестировать время не только в заучивание трех команд, а в понимание принципа работы. К счастью основы изучаются за пару вечеров, а большего и не надо. DS должно быть не сложно понять идею, ведь про графы и деревья вы наверное слышали. Только не используйте никаких GUI клиентов для Git по крайней мере пока учитесь! Например надо понимать разницу между git add и git commit, но GUI клиенты часто заменяют их одной кнопкой.
## Linux
The Linux command line for beginners
Если вы работаете из под Windows, то как можно быстрее бросайте это дело (если у вас уже Mac или Linux, то этот пункт можете пропустить). Считайте, что Python разработки под Windows не бывает. Не умея пользоваться линуксом вы беспомощны. Как слезть с иглы: поставьте себе Ubuntu и работайте только из под нее, а Windows оставьте для игр. Я бы не советовал пользоваться WSL, потому что это полумера, но и это подойдет как крайний вариант. Главное, чтобы вас не пугали фразы уровня “зайди на VPS по ssh по ключу, прокинь симлинк для этой штуки.” Иначе вы в большинстве команд будете тем парнем, которому надо постоянно помогать.
## Библиотеки и зависимости в Python
Python virtual environments: A Primer
Обязательное чтение про менеджмент библиотек и зависимостей в Python. Вы должны быть способны разрабатывать несколько DS проектов с конфликтующими зависимостями (один требует pytorch v1.12, второй v1.4) без использования Anaconda. Так не обязательно делать, но вы должны быть способны. Для вас не должно быть проблемой сделать так, чтобы проект запускался с одинаковыми версиями библиотек у вас, у вашего коллеги и на сервере.
## Практический Python
The Hitchiker’s Guide to Python
Чтение о практическом применении Python. Бесплатная, короткая и по делу написанная книга.
Особенное внимание:
Глава про структуру кода
Содержит очень важную информацию про модули и пакеты в Python (так же см. официальную документацию).
Для закрепления: взять любой свой проект и красиво разбить его на модули.
Глава про стиль кода
Стиль кода это недооцененная (особенно среди DS), но очень важная вещь. От умения писать код зависит, будут ваши коллеги плевать вам в чай или нет. Умение писать читабельный код сэкономит вам уйму времени даже если вы только прототипируете модели и вам никогда не придется поддерживать проекты. Решая Kaggle вы бы скорее хотели искать ошибки в коде или пробовать новые варианты решения?
Прочитали один раз - пишете код лучше, чем большинство DS. Бесплатное преимущество!
Для закрепления: написать любую программу максимально красиво. Достаточно даже задачи с Leetcode. Хороший критерий успеха: вы отложили код на две недели, вернулись и все еще понимаете, что в нем происходит.
Глава про тесты и гайд для pytest
Способность писать тесты отличает дилетанта от программиста. Знание о том, как писать тесты, навсегда меняет подход к написанию любого кода: просто понимаешь, какой код более вероятно содержит скрытые косяки. Минус: паранойя навсегда, потому узнаешь, что весь код без покрытия автотестами сломан. Это очень важно даже если вы только учить модели. Если ваш код невозможно затащить в прод, то вы беспомощны и возможно даже бесполезны.
Для закрепления: покрыть тестами свою программу. Бонусные очки, если вы покрываете тестами ML решение, потому что это довольно нетривиальная задача.
## Читаем код
Узнав про то, что такое модульный и читабельный код, изучаем его экземпляры в дикой природе. Просто читаем, вникаем что и откуда берется, задаем себе вопросы: “почему здесь так?”, “что это такое?”, “зачем это здесь?” Это симуляция ситуации, когда вам нужно работать с кодом коллеги. Только в реальной жизни код не будет хорошим.
Советую исходный код этой небольшой библиотеки для табличек: https://github.com/jazzband/tablib
Более продвинутый уровень, если в библиотеке выше уже все понятно: https://github.com/pallets/flask
## Git
Интерактивный туториал
Краткий курс по Git от Github
Git (или другая VCS) каждый день использует любой адекватный программист. Стоит инвестировать время не только в заучивание трех команд, а в понимание принципа работы. К счастью основы изучаются за пару вечеров, а большего и не надо. DS должно быть не сложно понять идею, ведь про графы и деревья вы наверное слышали. Только не используйте никаких GUI клиентов для Git по крайней мере пока учитесь! Например надо понимать разницу между git add и git commit, но GUI клиенты часто заменяют их одной кнопкой.
## Linux
The Linux command line for beginners
Если вы работаете из под Windows, то как можно быстрее бросайте это дело (если у вас уже Mac или Linux, то этот пункт можете пропустить). Считайте, что Python разработки под Windows не бывает. Не умея пользоваться линуксом вы беспомощны. Как слезть с иглы: поставьте себе Ubuntu и работайте только из под нее, а Windows оставьте для игр. Я бы не советовал пользоваться WSL, потому что это полумера, но и это подойдет как крайний вариант. Главное, чтобы вас не пугали фразы уровня “зайди на VPS по ssh по ключу, прокинь симлинк для этой штуки.” Иначе вы в большинстве команд будете тем парнем, которому надо постоянно помогать.
## Библиотеки и зависимости в Python
Python virtual environments: A Primer
Обязательное чтение про менеджмент библиотек и зависимостей в Python. Вы должны быть способны разрабатывать несколько DS проектов с конфликтующими зависимостями (один требует pytorch v1.12, второй v1.4) без использования Anaconda. Так не обязательно делать, но вы должны быть способны. Для вас не должно быть проблемой сделать так, чтобы проект запускался с одинаковыми версиями библиотек у вас, у вашего коллеги и на сервере.
## Практический Python
The Hitchiker’s Guide to Python
Чтение о практическом применении Python. Бесплатная, короткая и по делу написанная книга.
Особенное внимание:
Глава про структуру кода
Содержит очень важную информацию про модули и пакеты в Python (так же см. официальную документацию).
Для закрепления: взять любой свой проект и красиво разбить его на модули.
Глава про стиль кода
Стиль кода это недооцененная (особенно среди DS), но очень важная вещь. От умения писать код зависит, будут ваши коллеги плевать вам в чай или нет. Умение писать читабельный код сэкономит вам уйму времени даже если вы только прототипируете модели и вам никогда не придется поддерживать проекты. Решая Kaggle вы бы скорее хотели искать ошибки в коде или пробовать новые варианты решения?
Прочитали один раз - пишете код лучше, чем большинство DS. Бесплатное преимущество!
Для закрепления: написать любую программу максимально красиво. Достаточно даже задачи с Leetcode. Хороший критерий успеха: вы отложили код на две недели, вернулись и все еще понимаете, что в нем происходит.
Глава про тесты и гайд для pytest
Способность писать тесты отличает дилетанта от программиста. Знание о том, как писать тесты, навсегда меняет подход к написанию любого кода: просто понимаешь, какой код более вероятно содержит скрытые косяки. Минус: паранойя навсегда, потому узнаешь, что весь код без покрытия автотестами сломан. Это очень важно даже если вы только учить модели. Если ваш код невозможно затащить в прод, то вы беспомощны и возможно даже бесполезны.
Для закрепления: покрыть тестами свою программу. Бонусные очки, если вы покрываете тестами ML решение, потому что это довольно нетривиальная задача.
## Читаем код
Узнав про то, что такое модульный и читабельный код, изучаем его экземпляры в дикой природе. Просто читаем, вникаем что и откуда берется, задаем себе вопросы: “почему здесь так?”, “что это такое?”, “зачем это здесь?” Это симуляция ситуации, когда вам нужно работать с кодом коллеги. Только в реальной жизни код не будет хорошим.
Советую исходный код этой небольшой библиотеки для табличек: https://github.com/jazzband/tablib
Более продвинутый уровень, если в библиотеке выше уже все понятно: https://github.com/pallets/flask
Forwarded from Arseny Kravchenko
https://marp.app/, пишешь прям в маркдауне, one love
marp.app
Marp: Markdown Presentation Ecosystem
Marp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.
Forwarded from Толик Мастрюков
Доказательства -https://www.youtube.com/watch?v=teKcvStl_os&list=PL4_hYwCyhAvaxDxday8AUft5-vWXZJOO5 , https://www.youtube.com/watch?v=bQrag-TId4I&list=PL4_hYwCyhAvaAajkilVk9Pm_xDGnwLR-3
YouTube
Алгоритмы и структуры данных (продвинутый поток) 1. Амортизационный анализ
Лектор: Рухович Ф. Д.
Дата лекции: 12.09.2022
Съёмка: Илья Ванков
Монтаж: Егор Степашин
Обложка: Егор Степашин
0:00:00 Дополнительное ДЗ
0:09:00 Амортизационный анализ
0:11:25 Очередь на двух стеках
0:22:40 Анализ «в среднем»
0:26:40 Сливаемые кучи
0:46:10…
Дата лекции: 12.09.2022
Съёмка: Илья Ванков
Монтаж: Егор Степашин
Обложка: Егор Степашин
0:00:00 Дополнительное ДЗ
0:09:00 Амортизационный анализ
0:11:25 Очередь на двух стеках
0:22:40 Анализ «в среднем»
0:26:40 Сливаемые кучи
0:46:10…
#finance #economics
Хорошие материалы скорее для подготовки к консалтингу. Однако есть интересные материалы по финансам, экономике, управлению + кому интересно, есть кейсы
https://onedrive.live.com/?authkey=%21AJR5ejTqM0lYWLI&id=DDA731513E7B378C%216867&cid=DDA731513E7B378C
Хорошие материалы скорее для подготовки к консалтингу. Однако есть интересные материалы по финансам, экономике, управлению + кому интересно, есть кейсы
https://onedrive.live.com/?authkey=%21AJR5ejTqM0lYWLI&id=DDA731513E7B378C%216867&cid=DDA731513E7B378C
Forwarded from Egor Girenko Strategy Club
В этой книге содержатся простые и эффективные способы разделять само решение и его последствия, формировать стратегии для принятия более взвешенных и объективных решений с учетом прошлого и целей в будущем. Стратегии, описанные в книге, применимы и в бизнесе, и в личной жизни.
Энни Дьюк, профессиональный игрок в покер и бизнес-консультант. Окончила Колумбийский университет (Нью-Йорк, США) со степенями в области английского языка и психологии.
В 2000 году заняла 10-е место в Мировой серии покера и стала второй женщиной, занявшей такое высокое место в истории турнира. В 2004 году получила золотой браслет Мировой серии покера, заняв первое место в турнире Омаха Хай-Лоу. Преподавала в Академии Мировой серии покера, где обучала игре в покер также и знаменитостей, включая Мэтта Дэймона, Бена Аффлека, который затем выиграл 2004 California State Poker Championship. В 2010 году выиграла NBC National Heads-Up Poker Championship и стала первой и единственной женщиной-победителем в этом турнире. Соучредитель и представитель организации Epic Poker League. Соучредитель некоммерческой организации Ante Up for Africa.
1. Удачный результат не всегда означает удачное решение. Принимать решения, основываясь на одном удачном результате, неосмотрительно и опасно.
2. Любое решение — это ставка на будущее, поэтому само по себе оно не может быть верным или ошибочным. Если что-то пошло не так, это не признак нашей ошибки, это значит, что произошло событие, повлиявшее на результат.
3. Наши ставки зависят от наших убеждений. Чем вернее убеждения, тем вернее ставки. Результаты наших решений должны помогать нам менять убеждения.
4. Мы не любим менять свои убеждения. Если новая информация противоречит нашим убеждениям, мы часто ее отвергаем, уменьшая свои шансы принять качественное решение.
5. Мы получаем результаты благодаря навыкам и удаче. Навыки зависят от нас, а удача — нет. Нам стоит научиться разделять результаты навыков и результаты удачи. Вредно приписывать хорошие результаты нашим отличным навыкам, а плохие — отсутствию удачи.
6. Мы можем учиться, изучая результаты других людей, но нам мешает предвзятость. Нам не стоит думать, что человек получил плохой результат из-за отсутствия навыков, а хороший — потому что ему повезло.
7. Мыслить ставками — значит принимать решения непредвзято, используя всю доступную информацию и свои навыки, и понимать, что на результат могут повлиять неподконтрольные нам события.
8. Мышление ставками можно развить. Для этого надо:
- учиться признавать, что мы чего-то не знаем, и быть открытыми новой информации;
- создать группу поддержки, чтобы усилить анализ и прогнозирование;
- общаться конструктивно, стремясь получить новые сведения;
- «путешествовать во времени», вовлекая в принятие решений «будущего», «прошлого» и «настоящего» Я;
- создать «банку», в которую «складывать» замеченные примеры поведения, мешающего принимать решения качественно;
- проводить детальный анализ будущего, постепенно «раскручивая» последовательность решений, которая должна привести к результату.
9. Научившись мыслить ставками, мы используем каждое наше решение, чтобы чему-то научиться. Негативные результаты перестают быть «плохими», превратившись в поле для исследований.
10. Мышление ставками делает нас более сострадательными к себе и к другим. Мы осознаем, что никто не застрахован от влияния внешних обстоятельств, удачи или просто ошибочных убеждений.
Thinking in Bets | Annie Duke | Talks at Google https://www.youtube.com/watch?v=uYNsSeYjkp4
Cаммари следующих книг будем выкладывать в группе VK https://vk.com/mesiconsultingclub и канале Telegram https://t.iss.one/mesiconsultingclub - читайте, где вам удобнее #mesiconsultingclubbooks
Энни Дьюк, профессиональный игрок в покер и бизнес-консультант. Окончила Колумбийский университет (Нью-Йорк, США) со степенями в области английского языка и психологии.
В 2000 году заняла 10-е место в Мировой серии покера и стала второй женщиной, занявшей такое высокое место в истории турнира. В 2004 году получила золотой браслет Мировой серии покера, заняв первое место в турнире Омаха Хай-Лоу. Преподавала в Академии Мировой серии покера, где обучала игре в покер также и знаменитостей, включая Мэтта Дэймона, Бена Аффлека, который затем выиграл 2004 California State Poker Championship. В 2010 году выиграла NBC National Heads-Up Poker Championship и стала первой и единственной женщиной-победителем в этом турнире. Соучредитель и представитель организации Epic Poker League. Соучредитель некоммерческой организации Ante Up for Africa.
1. Удачный результат не всегда означает удачное решение. Принимать решения, основываясь на одном удачном результате, неосмотрительно и опасно.
2. Любое решение — это ставка на будущее, поэтому само по себе оно не может быть верным или ошибочным. Если что-то пошло не так, это не признак нашей ошибки, это значит, что произошло событие, повлиявшее на результат.
3. Наши ставки зависят от наших убеждений. Чем вернее убеждения, тем вернее ставки. Результаты наших решений должны помогать нам менять убеждения.
4. Мы не любим менять свои убеждения. Если новая информация противоречит нашим убеждениям, мы часто ее отвергаем, уменьшая свои шансы принять качественное решение.
5. Мы получаем результаты благодаря навыкам и удаче. Навыки зависят от нас, а удача — нет. Нам стоит научиться разделять результаты навыков и результаты удачи. Вредно приписывать хорошие результаты нашим отличным навыкам, а плохие — отсутствию удачи.
6. Мы можем учиться, изучая результаты других людей, но нам мешает предвзятость. Нам не стоит думать, что человек получил плохой результат из-за отсутствия навыков, а хороший — потому что ему повезло.
7. Мыслить ставками — значит принимать решения непредвзято, используя всю доступную информацию и свои навыки, и понимать, что на результат могут повлиять неподконтрольные нам события.
8. Мышление ставками можно развить. Для этого надо:
- учиться признавать, что мы чего-то не знаем, и быть открытыми новой информации;
- создать группу поддержки, чтобы усилить анализ и прогнозирование;
- общаться конструктивно, стремясь получить новые сведения;
- «путешествовать во времени», вовлекая в принятие решений «будущего», «прошлого» и «настоящего» Я;
- создать «банку», в которую «складывать» замеченные примеры поведения, мешающего принимать решения качественно;
- проводить детальный анализ будущего, постепенно «раскручивая» последовательность решений, которая должна привести к результату.
9. Научившись мыслить ставками, мы используем каждое наше решение, чтобы чему-то научиться. Негативные результаты перестают быть «плохими», превратившись в поле для исследований.
10. Мышление ставками делает нас более сострадательными к себе и к другим. Мы осознаем, что никто не застрахован от влияния внешних обстоятельств, удачи или просто ошибочных убеждений.
Thinking in Bets | Annie Duke | Talks at Google https://www.youtube.com/watch?v=uYNsSeYjkp4
Cаммари следующих книг будем выкладывать в группе VK https://vk.com/mesiconsultingclub и канале Telegram https://t.iss.one/mesiconsultingclub - читайте, где вам удобнее #mesiconsultingclubbooks
YouTube
Thinking in Bets | Annie Duke | Talks at Google
Annie Duke has leveraged her expertise in the science of smart decision making to excel at pursuits as varied as championship poker to public speaking. Annie recently released her latest book “Thinking in Bets: Making Smarter Decisions When You Don’t Have…
Forwarded from Нейронный Кот
Кстати, пару лет назад записывал лекцию о том, как можно получить дифференцируемое расстояние Левенштейна (собственно, нужно просто обучить нейронку в metric learning сетинге).
Зачем это нужно: часто есть мисматч между метрикой и лоссом. Например, в задаче машинного перевода мы обычно используем cross-entropy loss, а измеряем BLEU. Почему бы сразу не учить с помощью BLEU? Не понятно, как прокинуть градиенты :(
Так вот, кажется, с приходом ChatGPT мы все больше будем напрямую оптимизировать метрику напрямую через RL, а не пытаться найти трюки, чтобы метрику сделать дифференцируемой.
Блогпост от huggingface про Reinforcement Learning from Human Feedback
Зачем это нужно: часто есть мисматч между метрикой и лоссом. Например, в задаче машинного перевода мы обычно используем cross-entropy loss, а измеряем BLEU. Почему бы сразу не учить с помощью BLEU? Не понятно, как прокинуть градиенты :(
Так вот, кажется, с приходом ChatGPT мы все больше будем напрямую оптимизировать метрику напрямую через RL, а не пытаться найти трюки, чтобы метрику сделать дифференцируемой.
Блогпост от huggingface про Reinforcement Learning from Human Feedback
YouTube
Ivan Fursov: Deep Levenshtein
Data Fest Online 2020
NLP in Industry Track: https://ods.ai/tracks/nlp-df2020
Расскажу про то, как с помощью глубокого обучения решать задачи по поиску похожих строк (В том числе: дедупликация, текстовая кластеризация на основе расстояния Левенштейна, исправление…
NLP in Industry Track: https://ods.ai/tracks/nlp-df2020
Расскажу про то, как с помощью глубокого обучения решать задачи по поиску похожих строк (В том числе: дедупликация, текстовая кластеризация на основе расстояния Левенштейна, исправление…
Forwarded from DevFM
Индексы в PostgreSQL
До поры, до времени базами данных можно просто пользоваться, не особо вникая в детали работы. Но однажды что-то где-то начинает подтупливать. Тут-то и приходится разбираться.
У нас уже был заход про EXPLAIN. Теперь перейдем к более серьезным вещам, которые нужны при работе с реляционными базами, в частности, PostgreSQL — индексы.
Первая статья из цикла знакомит с особенностями применения индексов в PostgreSQL. Эти знания помогут лучше понимать и обосновывать, для чего и когда использовать индексы.
Статья освещает следующие моменты:
— какие есть способы сканирования — индексное, по битовой карте, последовательное
— как селективность данных влияет на способ сканирования
— почему индекс работает тем лучше, чем меньше строк удовлетворяют условию поиска
— покрывающие индексы и как они позволяют почти не обращаться к таблице
— как проиндексировать только часть строк таблицы для случая неравномерного распределения значений
— параллельное построение индексов, чтобы избежать блокировок при активных вставках и удалениях
Для освоения статьи требуется полная сосредоточенность и погружение, понадобится неоднократно гуглить. В общем, чтиво как раз на воскресный денек :)
На этой статье можно не останавливаться. Далее в цикле нас знакомят с нюансами использования конкретных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.
Многие практически значимые детали, приведенные в статьях часто спрашиваются на собеседовании разработчиков уровня middle.
#skills
До поры, до времени базами данных можно просто пользоваться, не особо вникая в детали работы. Но однажды что-то где-то начинает подтупливать. Тут-то и приходится разбираться.
У нас уже был заход про EXPLAIN. Теперь перейдем к более серьезным вещам, которые нужны при работе с реляционными базами, в частности, PostgreSQL — индексы.
Первая статья из цикла знакомит с особенностями применения индексов в PostgreSQL. Эти знания помогут лучше понимать и обосновывать, для чего и когда использовать индексы.
Статья освещает следующие моменты:
— какие есть способы сканирования — индексное, по битовой карте, последовательное
— как селективность данных влияет на способ сканирования
— почему индекс работает тем лучше, чем меньше строк удовлетворяют условию поиска
— покрывающие индексы и как они позволяют почти не обращаться к таблице
— как проиндексировать только часть строк таблицы для случая неравномерного распределения значений
— параллельное построение индексов, чтобы избежать блокировок при активных вставках и удалениях
Для освоения статьи требуется полная сосредоточенность и погружение, понадобится неоднократно гуглить. В общем, чтиво как раз на воскресный денек :)
На этой статье можно не останавливаться. Далее в цикле нас знакомят с нюансами использования конкретных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.
Многие практически значимые детали, приведенные в статьях часто спрашиваются на собеседовании разработчиков уровня middle.
#skills
Хабр
Индексы в PostgreSQL — 1
Предисловие В этой серии статей речь пойдет об индексах в PostgreSQL. Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика,...