Pull to refresh
0
@benjglread⁠-⁠only

User

Send message

Индексы в PostgreSQL — 1

Reading time17 min
Views432K

Предисловие


В этой серии статей речь пойдет об индексах в PostgreSQL.

Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика, использующего СУБД: какие индексы существуют, почему в PostgreSQL их так много разных, и как их использовать для ускорения запросов. Пожалуй, тему можно было бы раскрыть и меньшим числом слов, но мы втайне надеемся на любознательного разработчика, которому также интересны и подробности внутреннего устройства, тем более, что понимание таких подробностей позволяет не только прислушиваться к чужому мнению, но и делать собственные выводы.

За скобками обсуждения останутся вопросы разработки новых типов индексов. Это требует знания языка Си и относится скорее к компетенции системного программиста, а не прикладного разработчика. По этой же причине мы практически не будем рассматривать программные интерфейсы, а остановимся только на том, что имеет значение для использования уже готовых к употреблению индексов.

В этой части мы поговорим про разделение сфер ответственности между общим механизмом индексирования, относящимся к ядру СУБД, и отдельными методами индексного доступа, которые в PostgreSQL можно добавлять как расширения. В следующей части мы рассмотрим интерфейс метода доступа и такие важные понятия, как классы и семейства операторов. После такого длинного, но необходимого введения мы подробно рассмотрим устройство и применение различных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.
Читать дальше →
Total votes 104: ↑103 and ↓1+102
Comments59

Postgresso 2 (63)

Reading time17 min
Views4K

Новые контрибьюторы PostgreSQL:

Бертран Друво (Bertrand Drouvot),

Габриэль Бартолини (Gabriele Bartolini),

Ришар Гуо (Richard Guo).

Новые главные (major) контрибьюторы PostgreSQL, прибавилось два представителя Microsoft и один от Amazon:

Александр Лахин (Alexander Lakhin) - особенно поздравляем!

Дэниэл Густафссон (Daniel Gustafsson, Microsoft),

Дин Рашид (Dean Rasheed),

Джон Нэйлор (John Naylor),

Мелани Плейгман (Melanie Plageman, Microsoft),

Натан Боссарт (Nathan Bossart, Amazon Web Services).

Всех поздравляем! Страница контрибьюторов здесь.

Who's in Charge?

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments3

Замыкания и декораторы в Python: часть 2 — декораторы

Level of difficultyEasy
Reading time11 min
Views9.1K

Уважаемые читатели, рад вас приветствовать в новой статье. Этот материал является продолжением предыдущей публикации, посвященной замыканиям. В данной части обзора мы углубимся в тему декораторов.

Эта статья написана в первую очередь для тех, кто только начинает свой путь в программировании или начал изучать Python. Потому здесь я не буду рассматривать декораторы классов, чтобы сделать материал более доступным для новичков. Тем не менее, для тех, кто изучит данную статью, не составит труда разобраться в декораторах классов, так как они не имеют существенных отличий от рассматриваемых здесь декораторов функций.

Читать далее
Total votes 10: ↑8 and ↓2+7
Comments4

Web3.0 на Python, часть 2: advanced

Reading time13 min
Views19K

Привет, хабр! В первой части мы рассмотрели базовые операции на web3py. Здесь же речь в основном пойдет про улучшение производительности и различные "фишки". Скорее всего, они не будут полезны тем, кто делает какой-то pet-project или проект на хакатоне. А полезны они будут тем, кто делает реальный боевой проект и кому важна производительность.

Нырнуть в advanced web3
Total votes 7: ↑6 and ↓1+5
Comments0

Web3.0 на Python, часть 1: основы

Reading time19 min
Views73K

Привет, Хабр! Во время знакомства с Web3 было сложно найти понятные примеры базовых операций с блокчейном с использованием Web3Py в одном месте. Например: просмотр баланса, отправка ETH и ERC20 токенов, минтинг NFT, взаимодействие с контрактами и тд. Эта статья как раз и послужит таким местом.

Анонс второй части с advanced примерами, которые больше подойдут для использования в продакшене с оптимизацией запросов и тд, будет в телеграм канале.

Нырнуть в Web3
Total votes 11: ↑8 and ↓3+6
Comments4

PostgreSQL под капотом. Часть 0. Старт программы

Reading time17 min
Views16K

Postgres - один из крупнейших open source проектов. Он создавался многие года. Кодовая база накопилась огромная. Мне, как программисту, всегда было интересно как он работает под капотом. Но не про SQL пойдет речь, а про язык на котором он написан. Про C. 

С общей архитектурой можно ознакомиться здесь

Для начала поймем, что происходит до входа в главный цикл сервера.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments2

Как ускорить 1С если у вас Масштабируемый процессор Intel Xeon с низкой базовой тактовой частотой

Reading time3 min
Views23K

В очередной раз ко мне обратился коллега из одного франчайзи 1С с просьбой развернуть Postgres + 1C двух разных версий на одном сервере. Сие ему было необходимо для безболезненного перевода некой компании "Х" с существующего в компании рабочей версии 1С на свежую. Так скажем есть новый боевой сервер, на котором нет ничего кроме Windows 2022 Standart и надо все вышеописанное на нем развернуть.

Я с радостью согласился так как в наше непростое время любая дополнительная денежка за счастье.

Уже по старой своей традиции я сразу зашел в свойства системы дабы изучить на чем собственно буду работать и ожидаемо расстроился увидев процессор с тактовой частотой 2.1 ГГц.

Читать далее
Total votes 14: ↑13 and ↓1+15
Comments46

Собираем кластер PostgreSQL для разработки и тестирования

Reading time11 min
Views25K

Сегодня СУБД PostgreSQL является одной из самых известных и популярных систем управления баз данными в мире. Открытый исходный код, отсутствие платы за использование, контроль целостности, репликация – это далеко не все преимущества данной СУБД. В современных реалиях, когда тема импортозамещения особенно актуальна, PostgreSQL может оказаться подходящим вариантом.

Обычно PostgreSQL разворачивают в качестве кластера – системы, которая состоит из нескольких связанных между собой компьютеров (серверов) с целью обеспечения отказоустойчивости.

Как правило при развертывании кластеров PostgreSQL используют сторонние инструменты такие как Patroni, stolon, repmgr. 

В статье будет описана установка кластера PostgreSQL с помощью Ansible – инструмента, предназначенного для автоматизации настройки и развертывания программного обеспечения, а также инструмента repmgr, предназначенного для управления репликами и отказоустойчивостью в кластерах PostgreSQL.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments8

Как работать с процессами и потоками в Python

Reading time16 min
Views94K

Раскрывать тему параллельного или асинхронного программирования непросто. Во-первых, она перегружена терминологией и трудна для понимания. Как правило, тонкости и особенности работы с языками усваиваются, лишь когда столкнешься с ними на практике. Во-вторых, в контексте Python тоже много своих подводных камней. Но сегодня почти любой современный web-сервис сталкивается с необходимостью многопоточности или асинхронности. Поскольку это многопользовательская среда, мы хотим направить всю процессорную мощность не на ожидание, а на решение прикладных задач бизнеса, чтобы все пользователи во время получили необходимые данные. 

Эта статья будет полезна тем разработчикам, которые хотят выполнять больше работы за одно и то же время и задействовать все ресурсы своего железа. Проще говоря, делать больше при этом обходиться меньшими ресурсами. Пусть железо работает, а не простаивает.

Читать далее
Total votes 17: ↑15 and ↓2+16
Comments16

Вхождение в IT: через тернии к звездам

Reading time6 min
Views8.8K

Всем привет! Я новичок на Хабре в части публикаций, поэтому прошу сразу не пинать.

Хочу начать со знакомства и сперва поделиться своим опытом вхождения в IT. Он был долгим. Извилистым. Порой я с него сворачивал, но все дороги известно куда ведут.

15 своих «лучших» лет я отдал МВД России. Служил на благо Родине, но стало так тошно, что уже невмоготу...

Начнем?
Total votes 15: ↑11 and ↓4+10
Comments14

Небанальные правила чистого Python. Часть 1

Reading time6 min
Views20K

Большинство питонистов не раз слышали о таких правилах как «функции должны быть глаголами» или «не наследуйтесь явно от object в Python 3». В этой статье рассмотрим не такие банальные, но полезные правила чистого кода в Python.

Читать далее
Total votes 40: ↑38 and ↓2+45
Comments49

Автоматизация тестирования 1С (и не только) с помощью RPA

Reading time7 min
Views4.6K
Пожалуй, сейчас уже нет ни одного специалиста по тестированию, который бы не задумывался над вопросом автоматизации тестирования. Великое множество фреймворков, языков, специальных инструментов автоматизации — выбирай самый подходящий, на твой взгляд, и автоматизируй. Но не всегда всё так просто.

Попытки использования общепринятых фреймворков автоматизации тестирования для 1С и других десктопных приложений упираются в первую очередь в сложность определения и однозначной идентификации различных элементов интерфейса, для чего обычно используются xPath, локаторы и селекторы. Нужна такая платформа, у которой селектор сможет считать данные из 1С, т. к. при построении селектора анализируется всё дерево компонентов, а не только некоторое заданное число уровней.

В поисках такой платформы мы сравнили известные инструменты автоматизации:



Получается, что команда автоматизаторов, которая вполне успешно автоматизирует тестирование всех остальных систем IT-ландшафта компании, используя, например, самые распространённые фреймворки Java, не может взять в работу 1С. Автоматизация тестирования 1С становится достаточно редкой и обособленной компетенцией.

В поисках идеального предложения для решения проблемы мы решили побрейнштормить и поискать нестандартные решения. Что умеет работать с 1С и при этом может использоваться для автоматизации тестирования? В какой-то момент у нас появилось понимание, что действия, аналогичные автоматизации UI, часто применяются в роботизации. По сути, роботизация — это форма технологии автоматизации бизнес-процессов. А чем тестирование не бизнес-процесс? Отличительной и основной особенностью роботов RPA является возможность использования пользовательского интерфейса, в том числе и десктопного, для сбора данных и управления приложениями, т. е. именно то, что нужно для автоматизации тестирования 1С.
Читать дальше →
Total votes 25: ↑24 and ↓1+27
Comments3

Архитектура универсального проекта Django

Reading time4 min
Views27K

В ходе последних лет моей разработки проектов Django я понял, что почти все они имеют одно строение:
API, Apps, Config, Library, Utils, Workers...

В статье, помимо схемы архитектуры проекта Django, которую я использую в реальных промышленных проектах, подробно расскажу как этого достичь, чтобы все работало.

Читать далее
Total votes 10: ↑8 and ↓2+9
Comments15

Кем работать в IT в 2022: 1С-разработчик

Reading time10 min
Views15K

Рубрика «Кем работать в IT» — интервью с представителями IT-профессий, в которых специалисты рассказывают о тонкостях своей работы: плюсах, минусах, подводных камнях и заработной плате. Мы надеемся, что джунам и стажерам эта рубрика поможет больше узнать о том, что их ожидает на карьерном пути, а профессионалам — посмотреть на свою специальность через чужой опыт и, может быть, открыть для себя что-то новое.

Сегодня о своем опыте работы нам расскажет Дмитрий Шадрин, руководитель направления 1С-разработки в Sportmaster Lab.

Читать далее
Total votes 18: ↑16 and ↓2+28
Comments7

Вы не умеете работать с транзакциями

Reading time11 min
Views121K


Заголовок вышел броским, но накипело. Сразу скажу, что речь пойдет об 1С. Дорогие 1С-ники, вы не умеете работать с транзакциями и не понимаете что такое исключения. К такому выводу я пришел, просматривая большое количество кода на 1С, рождаемого в дебрях отечественного энтерпрайза. В типовых конфигурациях с этим все достаточно хорошо, но ужасающее количество заказного кода написано некомпетентно с точки зрения работы с базой данных. Вы когда-нибудь видели у себя ошибку "В данной транзакции уже происходили ошибки"? Если да — то заголовок статьи относится и к вам. Давайте под катом разберемся, наконец, что такое транзакции и как правильно с ними обращаться, работая с 1С.

Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments237

Введение в базы данных

Reading time7 min
Views52K

Я решила написать эту статью, потому что именно такой статьи мне очень не хватало несколько лет назад, когда я только начала карьеру в аналитике данных. Тогда я часто слышала слова «база данных», «реляционная база», «primary key», примерно понимала, что они означают, но единую картину в голове у меня сложить не получалось.

Читать далее
Total votes 13: ↑9 and ↓4+7
Comments21

Цена ошибки. Каковы последствия самых нашумевших ошибок в программах?

Reading time8 min
Views10K

6 сентября 1989 года парижанам запомнилось надолго — в этот день более 41 тысячи жителей французской столицы получили из полиции официальные письма о том, что они совершили жестокие убийства и грабежи, хотя на самом деле адресаты всего лишь нарушили правила дорожного движения. Причиной казуса оказался сбой в компьютерной системе парижской жандармерии, добавивший седых волос простым обывателям. Этот инцидент стал далеко не первым в истории высоких технологий, и уж конечно — не последним. Давайте вспомним самые громкие и широко известные компьютерные ошибки, которые привели к забавным, а иногда — довольно печальным последствиям.

Читать далее
Total votes 18: ↑13 and ↓5+11
Comments28

Как выбрать в Python подходящий конкурентный API

Reading time11 min
Views12K

Меня зовут Алексей Некрасов (@znbiz), я лидер направления Python в МТС, программный директор направления Python и спикер профессии «Python-разработчик» в Skillbox. Сегодня предлагаю обсудить best practices подбора оптимального конкурентного API на Python с учётом поставленной задачи и аппаратных возможностей целевой платформы. Под катом — туториал на эту непростую тему, который я для вас перевел.

При помощи Python решаются задачи для все более высоконагруженных приложений, и для таких вычислений необходимо реализовывать конкурентную обработку. В этом руководстве описана полезная пошаговая процедура для выбора наиболее подходящего конкурентного API.

Читать далее
Total votes 20: ↑16 and ↓4+21
Comments7

Колоночные СУБД — принцип действия, преимущества и область применения

Reading time5 min
Views117K
Середина 2000-х годов ознаменовалась бурным ростом числа колоночных СУБД. Vertica, ParAccel, Kognito, Infobright, SAND и другие пополнили клуб колоночных СУБД и разбавили гордое одиночество Sybase IQ, основавшей его в 90х годах. В этой статье я расскажу о причинах популярности идеи по-колоночного хранения данных, принцип действия и область использования колоночных СУБД.

Начнем с того, что популярные в наше время реляционные СУБД — Oracle, SQL Server, MySQL, DB2, Postgre и др. базируются на архитектуре, отсчитывающей свою историю еще c 1970-х годов, когда радиоприемники были транзисторными, бакенбарды длинными, брюки расклешенными, а в мире СУБД преобладали иерархические и сетевые системы управления данными. Главная задача баз данных тогда заключалась в том, чтобы поддержать начавшийся в 1960-х годах массовый переход от бумажного учета хозяйственной деятельности к компьютерному. Огромное количество информации из бумажных документов переносилось в БД учетных систем, которые должны были надежно хранить все входящие сведения и, при необходимости, быстро находить их. Такие требования обусловили архитектурные особенности реляционных СУБД, оставшиеся до настоящего времени практически неизменными: построчное хранение данных, индексирование записей и журналирование операций.
Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments51

Чем грозит авария на Запорожской АЭС

Reading time18 min
Views118K
Запорожская АЭС – это крупнейшая АЭС Украины и Европы. Уже почти полгода она находится под контролем российских войск. В последний месяц вокруг нее возникает много тревожных новостей: ее территорию обстреливают, ходят слухи о ее минировании. Россия и Украина обвиняют друг друга в ядерном терроризме, а обстановка вокруг АЭС вызывает все большее беспокойство на уровне мировых лидеров и главы ООН.

За последние дни я дал несколько интервью о ситуации на ЗАЭС. Например, для проекта Редакция. В этой статье я кратко опишу основные возможные аварийные ситуаций, которые могут возникнуть на станции, либо уже возникают. И их потенциальные последствия – что и куда может улететь, чем это грозит и даже как можно к этому подготовиться. В марте я уже писал подобную статью про риски аварий на Чернобыльской АЭС. И мне очень не нравится писать на такие темы, но какие времена — такая и атомная популяризация.


Читать дальше →
Total votes 324: ↑317 and ↓7+389
Comments299

Information

Rating
Does not participate
Registered
Activity