Рубрика «mysql»

Начну с контекста. Я играю в EA FC (ранее FIFA) в режиме Clubs (11×11), где каждым виртуальным игроком управляет человек. Сам по себе режим интересный, но мне, как человеку, который любит цифры и аналитику, довольно быстро стало не хватать доступной статистики.

Я пришёл в лигу, у которой уже был свой сайт (я в этой статье опущу тему о том, что я администрировал проект порядка 3 лет). Там статистику собирали вручную: люди пересматривали записи матчей и заносили базовые показатели — голы, ассисты, перехваты, отборы и так далее. На основе этих данных считались различные рейтинги: лучшие игроки, бомбардиры, разрушители и прочее.

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

Проблема N+1 стара как мир. Инструментов много: Debugbar хорош локально, Telescope тяжеловат для продакшена. Мне хотелось решения, которое будет «стучать» в Slack или Telegram именно тогда, когда проблема случилась на проде, и при этом сразу показывать пальцем на виновную строку кода.

Так появился Eloquent Guard

Как это работает под капотом

Основная магия происходит через подписку на события базы данных в Laravel. В сервис-провайдере пакета мы слушаем QueryExecuted:

DB::listen(function (QueryExecuted $query) {
    // 1. Проверяем дубликаты (N+1) по хэшу SQL
    // 2. Замеряем время выполнения (Slow Query)
    // 3. Если порог превышен — запускаем репортеры
});

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

Привет! Недавно мы с проектом (а по факту я в гордом одиночестве) переезжали с MySQL на PostgreSQL. Зачем? Проект — гео‑сервис для рыбаков: карта с точками, поиск рядом, фильтры по регионам, водоёмам и рыбам. MySQL стал тормозить на гео‑запросах, а PostGIS обещал скорость и порядок. Плюс мы всё равно переезжали на новый VDS – решили заодно сменить СУБД, пока данных не стало неприлично много.

Продом обкатано: читать будет полезно.

1. Исходные данные (чтобы понимали масштаб)

Проект не огромный, но и не игрушечный:

Равен ли голос трёх антисоциальных пиратов голосу полезного гражданина Джима Хокинса?

Равен ли голос трёх антисоциальных пиратов голосу полезного гражданина Джима Хокинса?

В 2011-м и немного в 2015 году я принимал участие в разработке портала с прикольными роликами Читать полностью »

Транзакции — не про «магическое ACID», а про конкретную механику согласованного доступа к данным под нагрузкой.

Эта статья объясняет как реально работают уровни изоляции и чем отличаются популярные СУБД на практике.

Мы разберём:

  • базовые и расширенные уровни (ANSI SQL-92 и вне стандарта),

  • MVCC, snapshot isolation и serializable snapshot isolation,

  • аномалии (dirty read, non-repeatable, phantom, lost update, out-of-order read, write skew),

  • переключения уровня в коде и «пересечение» разных уровней между конкурентными транзакциями.

Коротко: что такое изоляция и почему стандарт — не весь мир

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

Введение

Когда в инфраструктуре десятки сервисов и баз данных разных типов, ручное резервное копирование превращается в кошмар.

Один сервер использует PostgreSQL, другой — MySQL, третий — MongoDB, и для каждого нужны свои команды (pg_dump, mysqldump, mongodump) и свои скрип��ы.

Проект Dumper решает эту проблему он объединяет все типы баз в один универсальный инструмент.

Dumper написан на Go и работает через CLI, конфигурация задаётся в YAML — поэтому его легко встроить в cron, CI/CD pipelines, GitHub Actions или Docker-окружение.

Преимущества Dumper

Статья, которой по идее вообще не суждено было появиться на свет и которая ярко иллюстрирует разницу между теорией и практикой.

Как сбросить пароль для MySQL в 2025м году - 1

Да, я прекрасно понимаю что после статей про кросс‑компиляцию FreeBSD→CP/M или Читать полностью »

Photo by Lauren Mancke on Unsplash

Photo by Lauren Mancke on Unsplash

Мы все знаем, насколько важен SQL для любой работы, связанной с анализом данных. Он пользуется популярностью благодаря возможности извлечения значимой информации из данных и предоставления мощных инструментов для их обработки и анализа.

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

Уже лет 20 существует миф (или не миф), что современный Highload-проект невозможен без кэшей. Они всегда нас выручали, когда не справлялись базы данных. Но с тех пор, как появились первые кэши, key-value баз данных и другие технологии, многое изменилось и традиционные СУБД значительно эволюционировали. И так ли теперь нужен кэш?

Мы протестировали самые известные кэш-сервисы и СУБД и попробовали выжать из них миллион запросов в секунду в разных условиях. Делимся с вами результатами в этой статье.

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

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