Обновить
4.21

MySQL *

Свободная реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

SO_PEERCRED вместо контейнеров: как мы научили сокет понимать, какому клиенту какую MySQL отдавать

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.5K

Привет, Хабр! Сегодня на связи Илья Ищенко, руководитель группы администраторов хостинга Рег.ру и Роман Рогов, старший системный инженер.

В прошлом году мы закончили масштабную задачу — добавили MySQL 8 на все серверы шаред-хостинга с ispmanager. Получилась полноценная инфраструктурная перестройка: с двумя версиями MySQL на одном сервере, прозрачным переключением клиентов и возможностью безопасной миграции.

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

Читать далее

Новости

Базы данных-2025: ретроспектива

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели9K

Базы данных прибыльнее нефти? В 2025 году Ларри Эллисон стал самым богатым человеком в истории человечества, обойдя Рокфеллера. Тем временем на рынке M&A настоящий пожар: миллиардные сделки, банкротства и судебные иски MongoDB против конкурентов. Перевели подробный разбор того, кто выиграл, а кто проиграл в битве за данные в этом году.

Читать далее

Миграция MySQL 8 на PostgreSQL 16 | Пошаговое руководство с pgloader

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.6K

В этом руководстве я расскажу о практическом опыте переноса базы данных из MySQL 8 в PostgreSQL 16 с использованием Pgloader.

Читать далее

Как ИИ помогает проектировать базы данных

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели13K

Искусственный интеллект резко ворвался в нашу жизнь. Для кого-то это возможность смотреть или генерировать прикольные и не очень картинки и видео, которые многим уже надоели.

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

В этой статье речь пойдёт о менее заезженной, но не менее актуальной теме – как ИИ уже сейчас помогает проектировать базы данных.

Читать далее

HistoryHelper — плагин для DBeaver, который генерирует history-таблицы и триггеры за пару кликов. Часть 2

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K

Приветствие

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

Читать далее

Zabbix – миграция с MySQL на PostgreSQL

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели8.3K

Всем привет! Мы делаем проекты по Zabbix, накопили большую экспертизу и решили сделать переводы нескольких статей, которые нам показались интересными и полезными. Наверняка, будут полезны и вам. Также своим опытом делимся в телеграм-канале zabbix_ru, где вы можете найти полезные материалы и записи наших вебинаров, опубликованных на нашем ютуб-канале (прим. переводчика).

В этой статье мы покажем вам, как перенести базу данных Zabbix из MySQL в PostgreSQL на Rocky Linux 9. Заодно покажем, как включить TimescaleDB, а также выполним некоторые базовые настройки производительности.

В статье предполагается, что если доступны необязательные патчи (ключи с плавающей точкой и первичные ключи ), то они уже применены к базе данных.
Если вы в этом не уверены, информация об этом статусе также отображается во фронтенде в разделе System information, например, «Database history tables upgraded: No».

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

Читать далее

Транзакции в InnoDB: разбираемся с уровнями изоляции и блокировками

Время на прочтение8 мин
Охват и читатели6K

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

В этой статье давайте разберём несколько распространенных заблуждений и на примерах посмотрим, как на самом деле работают транзакции.

Читать далее

Обзор Moco — MySQL-оператора для Kubernetes

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели6.1K

В Kubernetes короткий жизненный цикл подов — норма. Но когда лидер-узел MySQL внезапно исчезает, рискуешь потерять не только доступность, но и согласованность данных. Оператор Moco предлагает решение: полусинхронная репликация, автоматический failover и восстановление с PITR — всё это без боли миграции на полностью синхронную репликацию.

В статье — детали репликации, бэкапов, PITR, switchover и нюансов работы с пользовательскими образами. А также честно — чем он лучше (и хуже) альтернатив, и стоит ли его рассматривать для продакшена.

Читать далее

JOIN vs. Коррелированный подзапрос: Разрушаем миф о «N+1» на 4 СУБД

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели13K

JOIN vs коррелированный подзапрос: мой разбор мифа «JOIN всегда быстрее»

Я проверил оба подхода (JOIN + GROUP BY и коррелированный подзапрос) на маленьком датасете и в ряде СУБД. Иногда подзапрос быстрее. Всё зависит от плана (Nested Loop vs Hash) и индексов. Слепо верить «JOIN всегда быстрее» не стоит. Смотрите EXPLAIN.

Читать далее

Рейтинг контента и пользователей на основе офелократии. Часть 2. Реализация на SQL

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели11K

Первая часть статьи

В первой части мы обсудили философские основы и принципы работы рейтинговой системы, где у каждого человека разная сила голоса, отражающая его полезность для конкретного сайта (офелократия). Теперь перейдём к техническим деталям реализации на MySQL.

Читать далее

Как я создаю idle-игру «Империя Кузбасс» для Telegram, VK и браузера

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели10K

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

Игра на 80% сделана с помощью вайб кодинга, но это не так просто как звучит.

Читать далее

PHP-веб-панель для Amnezia VPN: ускоряем корпоративную автоматизацию

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели20K

Под катом расскажу, как реализовал свою web-панель для управления Amnezia AWG (WireGuard) VPN на Ubuntu 22–24. Почему не хватило официального приложения, какие задачи решил с помощью простого PHP-интерфейса и чем это может быть полезно другим компаниям или разработчикам. Код и инструкции — в открытом доступе.

Проект на GitHub: amneziavpnphp

Читать далее

Сравнительный анализ эффективности планировщиков СУБД при выполнении различных запросов

Уровень сложностиСредний
Время на прочтение34 мин
Охват и читатели13K

Когда мы пишем запрос, СУБД делает гораздо больше, чем просто ищет данные. Она оценивает десятки сценариев выполнения, сравнивает стоимость операций и выбирает оптимальный путь к результату. От этого выбора зависит, будет ли запрос выполняться секунду или минуту. Почему одни системы находят лучший план, а другие выстраивают менее эффективный алгоритм? Попробуем разобраться, как планировщики СУБД принимают решения и что определяет их эффективность.

Читать далее

Ближайшие события

Как я собрал AI-ассистента для отца с больным сердцем: Tool-Calling RAG Pipeline на GPT-4o-mini без LangChain

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.1K

Мой отец — человек, переживший несколько сложнейших операций на сердце. Жизнь с хроническим заболеванием — это бесконечный поток анализов, заключений и схем приёма лекарств. Находясь далеко (я живу во Вьетнаме), я постоянно волновался: не забудет ли он про дозу, правильно ли понял назначение, задал ли все нужные вопросы врачу?

Мне нужен был не просто бот-напоминалка, а второй пилот — умный, конфиденциальный и мультимодальный AI-Кардиолог. Ассистент, который знает его анамнез наизусть, понимает голосовые команды и может «прочитать» фотографию свежего анализа.

Я решил собрать полноценный автономный агент с возможностью вызова внешних инструментов (Tool‑Calling) и локальной базой знаний (RAG), но без использования громоздких фреймворков вроде LangChain или LlamaIndex.

Читать далее

Уровни изоляции транзакций: практическая механика и сравнение PostgreSQL, MySQL, Oracle, SQL Server и DB2

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.5K

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

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

Мы разберём:

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.6K

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

Читать далее

Альтернатива чатам с ИИ для анализа и оптимизации SQL запросов. Часть 2

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели9.3K

Месяц назад я опубликовал пост об инструменте для автоматической оптимизации SQL-запросов. Идея была простая — убрать этап «общения» с ИИ и предоставить простой интерфейс, где не нужно придумывать промпты.

За первый месяц сервис использовали более 1000 человек. Ниже — выводы и результаты.

Читать далее

Resource Groups в MySQL

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.4K

Привет, Хабр!

Сегодня мы рассмотрим Resource Groups в MySQL — и перестанем жить на одной CPU.

Resource Groups — это контроль над CPU прямо из SQL. Вы создаёте логическую группу, говорите «эта группа может использовать только 2 CPU и работать на низком приоритете», и назначаете туда тяжелые, но второстепенные задачи. Всё. Дальше MySQL сам всё регулирует.

Читать далее

Альтернатива чатам с ИИ для анализа и оптимизации SQL запросов

Уровень сложностиСредний
Время на прочтение1 мин
Охват и читатели5.2K

Всем привет!

Экспериментировал с оптимизацией SQL запросов в ChatGPT и Claude. В какой-то момент понял, что это превращается в одно и то же: Напиши промт → вставь SQL → подожди → поправь → повтори

Читать далее

SSIS в Visual Studio: как мы перешли от хаоса к стабильному ETL-процессу

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели1.7K

Можно ли хранить данные, строить по ним отчетность, при этом обходясь без ETL процессов? Технически — да. Практически — только до первого серьезного роста данных.

Привет, Хабр! Меня зовут Алина, и в этой статье я расскажу о критически важном этапе, через который проходит любая data-driven компания.

Речь о переходе:
от построения отчетности напрямую из операционных баз (или через примитивное копирование в STG)
к структурированным ETL-процессам на специализированном ПО.

В нашем случае этим ПО стал SSIS — но важно подчеркнуть: сейчас мы используем NiFi с [N] процессорами для управления data pipeline. Однако именно опыт с SSIS стал для нас тем самым «мостиком» между хаотичным и осознанным подходом к данным.

P.S. Если хотите узнать про то, как мы организовали работу в NiFi — пишите в комментах, сделаем отдельный материал!

В этой статье — только про этап с SSIS. Не потому что он «лучший», а потому что:

Читать далее
1
23 ...

Вклад авторов