Рубрика «postgres» - 2

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

SELECT FOR UPDATE используют, чтобы избежать потерянных обновлений

Читать полностью »

Проблема

В golang нет undefined/none, из-за чего структуры, функции обычные и переменные нельзя использовать гибко - нет синтаксического сахара, как в python. Есть значение nil, но оно тоже не дает понимания, было ли значение передано или нет, так как golang по умолчанию задает значения переменным или полям структуры, например:

дана структура

type Person struct {
Name string
Position string
}

person := Pesron{Name: "Robert"}

при получении поля выдается значение по умолчанию (поле Position)

fmt.Println(person.Name) // Robert
fmt.Println(person.Position) // пустая строка

Читать полностью »

Об индексах на столбцах с низкой кардинальностью

Ранее среди коллег по СУБД бытовало мнение, что не стоит использовать B-tree индексы на столбцах с малым количеством уникальных значений. Считалось, что планировщик почти никогда не будет использовать такие индексы, поскольку дешевле последовательно прочитать всю таблицу, чем использовать случайное чтение (Disk I/O) на индексе, а затем переходить по указанному TID (Tuple ID) в таблицу. В случае, если необходимо прочитать сначала большую долю индекса, а потом большую долю таблицы, то дешевле сразу прочитать таблицу, чем выполнять двойную работу.
Читать полностью »

Уже давно стали обыденными внедрения решений на платформе 1С:Предприятие на тысячу одновременных пользователей. Есть внедрения и более масштабные. И масштаб внедрений растёт. Поэтому мы решили убедиться, что платформа выдержит нагрузку нашего самого востребованного на крупных внедрениях решения 1C:ERP на 30 000 одновременно работающих пользователях.

Почему именно 30 000 пользователей, как мы измеряли производительность и как добились желаемой производительности – под катом.

Читать полностью »
Spring AI и retrieval augmented generation

Spring AI и retrieval augmented generation

Spring AIЧитать полностью »

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

Ответ прост и сложен одновременно: это векторный поиск — одна из самых перспективных технологий, меняющих подходы к работе с информацией.

Читать полностью »

Об истории логотипа PostgreSQL рассказал генеральный директор Postgres Professional Олег Бартунов, который непосредственно был участником событий и сохранил архив переписки и разработки визуального стиля СУБД.

Русский след в истории логотипа PostgreSQL - 1

Читать полностью »

Всем доброго дня! Пишу здесь впервые. На написание меня этой статьи побудило желание рассказать людям об эффективном способе миграции от внутренней базы данных sqlite3 к внешней БД PostgreSQL. Подобной статьи на Хабре я не нашел, поэтому надеюсь будет полезно.

Я перечитал много статей на эту тему и попробовал различные варианты, но получилось у меня только с одним. Спасибо этому человеку: Oodcode. Так же расскажу про остальные способы и что из них вышло.

Предпосылки

Изначально причиной миграции стали ошибки алертов, приходящие из Grafana (~130 штук). А именно: Читать полностью »

Песочница Sandbox DB

Песочница Sandbox DB

Приветствую всех читателей! Сегодня я хочу рассказать вам о своем мини‑проекте под названием «Песочница Sandbox DB».

Если вам лень читать статью, вот ссылка на проект: Sandbox DB на GitFlic.

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js