Рубрика «бд»

Вступление

В данной статье обсудим проблемы, возникающие при конкурентной работе с данными, а также инструменты для их решения – атомарные инструкции, явные и неявные блокировки и уровни изолированности транзакций, реализованные в OLTP СУБД PostgreSQL, MySQL, SQL Server, Oracle с примерами на Go. Поговорим о деталях их реализации в указанных СУБД. На примере PostgreSQL проведем benchmark-тестирование производительности уровней изоляции с использованием инструмента pgbench.

Docker – compose с СУБД и код примеров можно найти в Читать полностью »

Привет! Меня зовут Миша Шлыков, я менеджер проектов в диджитал-продакшене Далее. Уже два года мы вместе с «Национальными приоритетами» развиваем сайт наука.рф. За это время 30 миллионов человек поучаствовали в проектах Десятилетия науки, а делают его простые люди со всей России. В статье рассказываю о том, как проект добавил +100 к пониманию пользователей с низкой компьютерной грамотностью.

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

Привет!

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

Данная информация предполагает знание основ языка запросов и я надеюсь, она окажется полезной для разработчиков, которые сейчас активно ищут работу а также, что ты прочитаешь этот текст до конца и добавишь свой вопрос к перечню (ну или поправишь неточности в существующих)Читать полностью »

FYI: this article is an expanded version of my talk at SQA Days #25.

Based on my experience with colleagues, I can state: DB code testing is not a widely spread practice. This can be potentially dangerous. DB logic is written by human beings just like all other «usual» code. So, there can be failures which can cause negative consequences for a product, business or users. Whether these are stored procedures helping backend or it is ETL modifying data in a warehouse — there is always a risk and testing helps to decrease it. I want to tell you what tSQLt is and how it helps us to test DB code.

Testing SQL Server code with tSQLt - 1

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

FYI: эта статья представляет собой дополненную версию моего доклада на SQA Days #25.

Опираясь на свой опыт общения с коллегами, могу утверждать: тестирование кода в БД не является распространённой практикой. Это может нести в себе потенциальную опасность. Логику в БД пишут такие же люди, какие пишут «обычный» код. Следовательно, там так же могут присутствовать ошибки, и они так же могут повлечь за собой негативные последствия для продукта, бизнеса и потребителей. Неважно, идёт ли речь о хранимых процедурах, помогающих бэкенду, или о ETL, преобразующих данные в хранилище — риск есть, и тестирование может его существенно снизить. О том, что такое tSQLt и как оно помогает нам в тестировании кода в SQL Server, я и хочу вам рассказать.

Тестируем SQL Server код с tSQLt - 1

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

Роковые 43 секунды, которые вызвали суточную деградацию сервиса

На прошлой неделе в GitHub произошёл инцидент, который привёл к деградации сервиса на 24 часа и 11 минут. Инцидент затронул не всю платформу, а только несколько внутренних систем, что привело к отображению устаревшей и непоследовательной информации. В конечном счете данные пользователей не были потеряны, но ручная сверка нескольких секунд записи в БД выполняется до сих пор. На протяжении почти всего сбоя GitHub также не мог обрабатывать вебхуки, создавать и публиковать сайты GitHub Pages.

Все мы в GitHub хотели бы искренне извиниться за проблемы, которые возникли у всех вас. Мы знаем о вашем доверии GitHub и гордимся созданием устойчивых систем, которые поддерживают высокую доступность нашей платформы. С этим инцидентом мы вас подвели и глубоко сожалеем. Хотя мы не можем отменить проблемы из-за деградации платформы GitHub в течение длительного времени, но можем объяснить причины произошедшего, рассказать об усвоенных уроках и о мерах, которые позволят компании лучше защититься от подобных сбоев в будущем.
Читать полностью »

Сегодня после нескольких попыток создания Issue и записи комментариев к уже существующими — столкнулся с тем что запись/комментарий визуально отображаются а после перезагрузки — пропадают.

На GitHub произошёл сбой БД - 1

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

Про хранение паролей в БД - 1

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

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

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

Не буду долго разглагольствовать и покажу примеры связей (один к одному, один ко многим, многие ко многим), реализованных в системе MyTaskHelper.

Для наглядности создаем несколько таблиц с данными. Пусть это будет:

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

Добрый день, уважаемые коллеги, пользователи и критики! Сервис MyTaskHelper предоставляет своим клиентам возможности и функционал для реализации sms- и e-mail рассылок. В этой статье мы детально (с примерами и скриншотами) расскажем о вариантах организации только email-уведомлений и рассылок. Что же касается sms-рассылок и уведомлений, то они создаются аналогичным образом.

У клиентов MTH имеется 2 возможности:

  1. Отправлять автоматизированные сообщения при тех или иных манипуляциях с веб-формой или базой данных;
  2. Генерировать рассылки как по собранной посредством веб-форм, так и по импортированной базе контактов клиентов или партнеров.

Напомню, что во всех CMS в той или иной мере имеется возможность настроить e-mail-уведомления различных типов. А вот с функцией e-mail-рассылок туговато и для того, чтобы вести эффективные и массовые рассылки, придется заводить аккаунт на каком-либо специализированном сайте. Но в MTH реализованы обе опции и даже те, кто зарегистрировался в системе и укладывается в лимиты бесплатного аккаунта (см. страницу с ценами) смогут в полной мере оценить удобство интеграции обеих функций в одной системе.

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


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