Как стать автором
Поиск
Написать публикацию
Обновить
3.28

MySQL *

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

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

Блокировки MySQL: виды, проблемы и способы обнаружения

Время на прочтение27 мин
Количество просмотров60K

Рано или поздно любой разработчик или администратор СУБД, имеющий дело с MySQL, сталкивается с проблемой блокировок. Всё дело в природе MySQL как системы с конкурентным доступом на чтение/запись. Я расскажу о видах блокировок в MySQL, их преимуществах и недостатках, о проблемах, которые они вызывают, а также дам полезные советы по обнаружению и способам борьбы с блокировками.

Читать далее

Как я exif данные из JPEG вытаскивал и в БД запихивал (а потом доставал)

Время на прочтение7 мин
Количество просмотров5.1K
Задача была такова: Есть общая папка с изображениями, к каждому из которых проставлены ключевые слова (определяющие конкретного человека/организацию). Необходимо получать перечень изображений с определенным тегом для последующего вывода галереи на странице этого человека.
Читать дальше →

DataGrip 2021.3: Aggregate view в редакторе, табличное представление узлов дерева БД, новое окно сравнения БД и др

Время на прочтение8 мин
Количество просмотров6.5K

Привет! Сегодня расскажем, что нового в свежем релизе DataGrip 2021.3. Если вы работаете с базами данных в других IDE от JetBrains, то этот пост и для вас тоже.

Читать далее

Имитационная модель пула потоков для сервера баз данных

Время на прочтение12 мин
Количество просмотров1.7K

В работе построена объектная имитационная модель пула потоков, за основу которой взята реализация, используемая в СУБД MySQL, MariaDB и Percona Server. Описаны входные потоки модели и примеры их распределений. Приведены результаты апробации модели, согласующиеся с известными паттернами зависимости производительности от входных параметров. Практическое значение модель имеет как инструмент статического и динамического выявления наиболее значимых для производительности параметров и их оптимального выбора.

Читать дальше →

Конференция Oracle Database Russia: время поговорить о базах данных за чашечкой кофе

Время на прочтение2 мин
Количество просмотров1.5K

Привет, Хабр! Завтра и послезавтра у нас состоится крупное мероприятие, посвященное базам данных, причем не только флагманской СУБД Oracle, но также MySQL и TimesTen. А поскольку я принимаю непосредственное участие в организации этого ивента, то сегодня хочу пригласить присоединиться к сессиям или просто послушать пару докладов тех, кто работает с базами данных и интересуется тенденциями и направлениями развития. Это и IT-руководители, и DBA, и разработчики, создающие приложения для СУБД. Под катом — подробнее о мероприятии и ссылка на регистрацию.

Читать далее

Использование PHP для системного администрирования

Время на прочтение9 мин
Количество просмотров7.6K

Практическая значимость PHP для веб-разработки, впечатляет с точки зрения эффективности и универсальности. Большинство системных администраторов этим ограничиваются. Как и язык С#, PHP может быть мощным инструментом для системного администратора, несмотря на то, что PHP является по своей природе языком для веб-разработки.

Самым главным преимуществом PHP для системного администрирования является его кроссплатформенность. В отличие от таких традиционных инструментов, как bash для Linux или bat-файлы и скрипты Visual Basic для Windows, PHP скрипты легко переносятся из одной операционной системы в другую. Все, что необходимо это совместимость с интерпретатором PHP и установка необходимых модулей.

Читать далее

Педальку в пол, или как ещё ускорить CPU-bound приложение?

Время на прочтение29 мин
Количество просмотров6.9K

Зачем я это читаю?


TL;DR:


  • Переложив секции кода и данных программы на большие страницы можно существенно ускорить приложение (у нас получилось до +10%) не трогая исходный код.
  • Можно быстро проверить ничего не перекомпилируя, детали здесь.
  • Финальное решение оперирует "классическими" большими страницами (не transparent huge pages), поэтому в какой-то степени его можно назвать дальнейшим развитием libhugetlbfs.
Читать дальше →

Разворачиваем сайт на CMS DLE в контейнерах Docker и Compose

Время на прочтение3 мин
Количество просмотров7.7K

В данном туториале мы рассмотрим, как быстро развернуть LEMP-стэк на виртуальный сервер VPS, используя технологию контейнеризации на базе Docker для сайта под управлением CMS DataLife Engine (DLE).

Читать далее

Go и MySQL: настраиваем пул соединений

Время на прочтение14 мин
Количество просмотров31K

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

немного затронем основы клиент-серверного протокола MySQL, его базовое устройство и принципы работы;

дальше перейдем к Go части и разберем реализацию пула соединений;

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

Надеюсь каждый для себя найдет что-то полезное.

Поехали

Дифференциальные и инкрементальные бэкапы MySQL

Время на прочтение7 мин
Количество просмотров19K

Для MySQL существует широко известный инструмент по созданию резервных копий баз данных — mysqldump, который создаёт дамп посредством записи серии SQL-инструкций для восстановления таблиц и данных целевой базы данных.

Он неплохо подходит для резервного копирования небольших баз данных, но когда база данных набирает приличный «вес» и возникает необходимость резервного копирования чаще, чем раз в сутки, скорость создания и размеры дампов могут стать проблемой. В данном случае на помощь приходят утилиты, создающие копию бинарных файлов баз данных, например, такие как Percona XtraBackup.
Читать дальше →

Один человек ответил на 85+ тысяч вопросов на Stack Overflow (24,1 ответа в день)

Время на прочтение2 мин
Количество просмотров18K

В среднем 24,1 ответа в день (если все 365 дней в году считать рабочими) на протяжении почти 10 лет.

Несколько дней назад на некоторых англоязычных ресурсах началось обсуждение одного очень необычного пользователя Stack Overflow. Его зовут Гордон Линофф (Gordon Linoff), он из Нью-Йорка, и за 9 лет и 8 месяцев своего присутствия на платформе он дал 85,201 ответов на различные вопросы, в основном связанные с SQL и дата-майнингом (цифра актуальна на 27.09.2021).

Что это за маг?

Читать далее

Как справиться с Debezium + MySql + Spring Could Streams, Part 1

Время на прочтение5 мин
Количество просмотров7.1K

Добрый день, Хаброжители!

Это моя первая статья на Хабре, любые замечания, предложения, пожелания приветствуются!

В этой статье (часть 1), я попытаюсь рассказать и показать как поднять и настрить stand along Debezium CDC + MySql server.

Читать далее

Используем sequence в MySQL

Время на прочтение5 мин
Количество просмотров15K

Хочу рассказать о том, как создать сквозной монотонно возрастающий  целочисленный id в MySQL (это называется sequence в других БД). Зачем это нужно? Например, у нас есть два вида задач для сотрудников в системе, у каждого типа задач есть свой набор атрибутов и свой жизненный цикл (набор статусов). Для того чтобы не городить огород в коде приложения для корректного чтения разных сущностей из БД и не плодить колонки с NULL проще всего разнести сущности по разным таблицам.

Читать далее

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

MySQL в Docker не может писать slow-логи в /dev/stderr

Время на прочтение8 мин
Количество просмотров8.3K

Прим. перев.: в процессе поиска решения проблемы с логированием медленных запросов MySQL наткнулся на довольно познавательную статью. Её автор не только в деталях описывает своё расследование, которое может оказаться полезным для начинающих администраторов, но и попутно пробуждает чувства ностальгии по эпохе VT100.

Сначала краткая предыстория. Я пытался сделать так, чтобы логи медленных запросов в MySQL писались в /dev/stderr и их можно было бы читать с помощью простого docker-compose logs -f mysql без необходимости входить в контейнер с docker-compose exec mysql ash.

Читать далее

selectel-exporter — экспортер для manage-баз данных

Время на прочтение4 мин
Количество просмотров2.5K

Мы в KTS на многих проектах пользуемся услугами managed database от selectel. За этими кластерами нужно следить, и делать это хотелось бы из одной точки. Этой точкой у нас является prometheus, alertmanager и grafana. 

Из коробки у selectel нет prometheus exporter для manage-баз данных. Есть внутренние графики и мониторинг, но использовать их затруднительно. Поэтому мы написали свой selectel-exporter, который использует selectel API.

В статье расскажем, почему решили его написать и расскажем, что он умеет.

Читать далее

PlanetScale — Serverless SQL база данных для разработчиков

Время на прочтение4 мин
Количество просмотров5.3K

Этим летом я по уши увяз в serverless-тематике и даже решил переписать один из своих pet-проектов целиком на serverless. Движок для сайта, поддерживающий бессерверные вычисления и вендор для кэширующей прослойки были найдены быстро - NextJS (с деплоем на Vercel) и Upstash с оплатой за каждую отдельную операцию и байт в хранилище. Камнем преткновения стал выбор провайдера для DBaaS. Мне бы хотелось реализовать всё таким образом, чтобы у проекта было две разных базы данных - для разработки и для production, и мне совсем не хотелось запускать базу данных для разработки на локальной машине. Поверхностное ознакомление с DBaaS провайдерами показало, что за дополнительную базу данных пришлось бы платить вдвое больше несмотря на то, что она использовалась бы дай Бог пару раз в неделю. И я ушёл в просмотр докладов и презентаций на YouTube и это именно тот момент когда я открыл для себя PlanetScale. Хочу поделиться своим открытием с вами.

Читать далее

Централизованное управление CBPolicyD в мультисерверной инфраструктуре Zimbra OSE

Время на прочтение6 мин
Количество просмотров2.5K

CBPolicyD является универсальным инструментом для управления политиками в Postfix. Он входит в комплект поставки Zimbra OSE и ранее мы рассказывали о том, как настраивать CBPolicyD на своем почтовом сервере и создавать в нем различные политики, которые позволяют повысить уровень защищенности сервера от кибератак. Однако все данные ранее рекомендации были применимы к односерверной инфраструктуре Zimbra OSE, так как CBPolicyD по умолчанию использует автономную СУБД SQLite 3 для хранения и управления политиками, а это означает, что созданная на одном сервере политика не будет иметь силы на другом сервере и каждый раз для внедрения новой политики, администратору придется создавать ее на каждом сервере MTA. В случае с односерверной инфраструктурой это допустимо, однако когда речь идет о мультисерверной инфраструктуре Zimbra OSE, необходимо чтобы созданная политика применялась сразу на всех MTA. Это облегчает не только процесс создания политик, но и процесс управления ими. Для того, чтобы созданная политика автоматически применялась на всех MTA в инфраструктуре, необходимо подключить ее к глобальной СУБД MariaDB. Плюсом использования MariaDB является то, что эта СУБД более отказоустойчива, чем SQLite 3. То есть при больших нагрузках на MTA CBPolicyD гарантированно не будет пропускать письма, не соответствующие настроенным политикам. В данной статье мы расскажем о том, как это сделать.

Читать далее

DataGrip 2021.2: Генерация источника на основе кода, поиск по истории изменений, управление списком автодополнения и др

Время на прочтение5 мин
Количество просмотров5.1K

Привет! Рассказываем о том, что мы сделали в DataGrip за четыре месяца. Если вы пользуетесь другими IDE от JetBrains и работаете в них с базами данных, то этот пост для вас тоже.

Что внутри?

Как написать Viber чат-бота, работающего с АСУ ТП на базе ПЛК Siemens

Время на прочтение7 мин
Количество просмотров7.7K

Как создать Viber чат-бота на Python для диспетчеризации технологического процесса.

Читать далее

Фреймворк на PHP: CodeIgniter 4. «Лёгкий пример» использования Database Migrations (миграций) и Seeding (посев)

Время на прочтение2 мин
Количество просмотров9K

Познакомиться с PHP фреймворком CodeIgniter 4 достаточно просто.

Нужно потратить вечер, выполняя инструкции из раздела  «Build Your First Application» («Создайте свое первое приложение»). Поскольку документация написана хорошим, технически понятным языком, то в процессе ознакомления с этим и другими разделами возможно получить даже некоторое эстетическое удовольствие.

Читать далее

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