Как стать автором
Обновить
8.87

MySQL *

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

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

Плохие JOIN’ы: приемы, которые (нечаянно) кладут прод

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

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

В этой статье разбираем один из самых коварных способов убить базу — плохие JOIN'ы. Казалось бы, простое дело: связать пару таблиц — и вперёд. Но если в ON засунуть LOWER(email), забыть про индексы или перепутать LEFT JOIN с INNER — сервер мигом начнет дышать на ладан.

Читать далее

Новости

Как мы уменьшали размер базы данных

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

Больше года назад мы в LEADS.SU задумались над высокодоступностью нашей БД и начали искать различные варианты. Круг решений сужало то, что мы используем TokuDB, который уже не поддерживается. Вариантов было несколько, но точно было понятно что запуск кластера повлечет за собой полное клонирование файлов /var/lib/mysql, к тому моменту размер этой директории уже перевалил за пару сотен гигабайт и мы задумались над ревизией данных, что привело к долгоиграющему процессу по уменьшению размера БД.

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

Читать далее

Как заставить вашу базу данных летать, а не ползать. Часть 1 масштабирование и репликация

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

Всем привет! Меня зовут Илья Криволапов, тружусь системным аналитиком в SENSE на проекте одного из цветных банков РФ. В профессии я уже пятый год и, несмотря на фамилию, ломал прод всего лишь несколько незначительных раз (надеюсь). 

На досуге я преподаю в университете дисциплину «Хранение и обработка больших объемов данных» и за все время у меня накопилось много полезной информации. Непростительно хранить такой клад у себя в столе, поэтому я подготовил для читателей Хабра ультимативный гайд по оптимизации или хорошему такому, грамотному проектированию баз данных с расчетом на масштабирование.

Всего в цикле будет 3 статьи. В первой поговорим о двух разных подходах масштабирования БД и о том, как лучше его делать и как лучше не делать (Никогда. Пожалуйста). 

Кому будет полезно? Всем отвечающим за «здоровье» базы данных: DBA, архитекторам, DevOps-инженерам, аналитикам и разработчикам. 

Согласны? Узнали? Тогда поехали!

Читать далее

Книги по базам данных, которые стоит прочитать в 2025 году

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

Всем привет! Это Миша Степнов, руководитель центра R&D Big Data в МТС Диджитал.

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

Чтобы модели не «предвзято учились» и не «выдавали мусор», нужно обеспечивать непрерывные R&D-процессы по управлению данными: от сбора и очистки до хранения и быстрых итераций над ними. И тут возникает важное понятие AI Ready Data: все, что касается доступности данных, их формата и актуальности, должно быть продумано заранее и поддерживаться на высоком уровне качества.

Умение грамотно управлять данными — это уже не «хороший тон», а конкурентное преимущество.  Но как прокачивать навыки работы с ними? Один из способов — читать правильную литературу. Так что в этом посте поделюсь списком книг о базовых принципах реляционных баз данных и SQL, продвинутых инструментах и языках программирования и многом другом. Забирайте в закладки, а при желании дополняйте подборку в комментариях.

Читать далее

CRM для автошколы?

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

Доброго времени. Меня зовут Дмитрий и я веб‑разработчик. На данный момент работаю в группе компаний по экспорту автомобилей и техники из Японии, Китая и Кореи. Но, сейчас поговорим не об основной работе, а о «подработке».

>= 2 лет назад, на меня вышел директор достаточно крупной автошколы нашего города. На тот момент у них имелось порядка 3-х филиалов, и приблизительно 4,5 тыс. учеников (как актуальных, так и те — которые уже получили свои ВУ). Директор предложил мне поработать с их CRM системой. Данное ПО было написано какими‑то фрилансерами, и на протяжении нескольких лет они же и обеспечивали поддержку. Но, со слов директора, они начали забивать на свою работу, затягивали с выполнением задач или во все игнорировали пожелания по внесению изменений (все это было не бесплатно).

Читать далее

Нужен ли нам сейчас кеш-слой перед СУБД

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

Уже лет 20 существует миф (или не миф), что современный Highload-проект невозможен без кэшей. Они всегда нас выручали, когда не справлялись базы данных. Но с тех пор, как появились первые кэши, key-value баз данных и другие технологии, многое изменилось и традиционные СУБД значительно эволюционировали. И так ли теперь нужен кэш?
Мы протестировали самые известные кэш-сервисы и СУБД и попробовали выжать из них миллион запросов в секунду в разных условиях. Делимся с вами результатами в этой статье.
Привет, Хабр! Я Алексей Рыбак, предприниматель и основатель R&D-лаборатории DevHands, автор телеграм-канала про System Design и Highload. В прошлом — СТО и руководитель московского офиса Badoo. Работал во втором по размеру такси-сервисе «Везёт», который мы после продажи интегрировали с Яндекс.Такси. Сейчас наша компания разрабатывает образовательные программы по Highload и перформансу.

Читать далее

Секреты стройности монолита: подходы по снятию нагрузки с БД

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

Привет! Меня зовут Олег Кретинин, и я разработчик в команде общих компонентов в Яндекс Еде. Сегодня я расскажу о том, как мы смогли успешно снять нагрузку с нашей базы данных, а также уменьшить её размер.

Помимо сервисов, написанных на C++, Go и Python, у нас есть монолит, он же «кора», на PHP, который всё ещё представляет огромную кодовую базу, хранит кучу логики и предоставляет данные по API для 120 сервисов.

После обновления фреймворка и версии PHP мы принялись за решение другой проблемы, которая всё чаще и чаще давала о себе знать. В тот период у нас возросло количество инцидентов, связанных с базой данных, и нам нужно было что‑то придумать, чтобы стабилизировать проект максимально быстро. Случалось, что всё сыпалось во время праздничных дней, когда количество заказов увеличивалось на 30–40%, или во время разовых массовых операций, например когда однажды в большую сеть ресторанов добавлялся бесплатный соус к каждой позиции меню.

Читать далее

Простой биллинг для Telegram-бота на SQL

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.2K

Некоторое время назад я запустил Telegram-бота для мониторинга сайтов и обозначил в нём тариф из двух строчек.

Сколько строк на SQL понадобилось для реализации такого тарифа и как в целом устроен биллинг в моём боте расскажу в статье.

Читать далее

Чем отличается пессимистическая и оптимистическая блокировка в MySQL

Время на прочтение5 мин
Количество просмотров5K
При проектировании приложений, использующих базы данных, часто возникают такие ситуации, в которых требуется конкурентный доступ к данным. Это может приводить к самым разным последствиям, поскольку состояние базы данных может нарушиться, или некоторые данные могут быть потеряны. Чтобы предотвратить такие сценарии, существуют различные способы контролировать доступ к ресурсам. Например, применяется оптимистическая и пессимистическая блокировка, о которых мы здесь поговорим.
Читать дальше →

Рецензия на книгу «MySQL. Сборник рецептов. 4-е издание»

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2.4K

Этот пост про толстенную 900-страничную книгу с множеством примеров решения практических задач при работе с СУБД MySQL. Довольно редко, когда американское издательство публикует книги от русскоязычного автора. Однако Света Смирнова — признанный эксперт по MySQL, и ее книги выходят в издательстве O’REILLY с 2012 года. Если вы совершенствуетесь в применении СУБД MySQL — новая книга будет очень хорошим подспорьем, а мы в SSP SOFT поможем с промокодом на покупку. 

Читать далее

Уровни изоляции транзакций в PostgreSQL, MySQL, MSQL, Oracle с примерами на Go

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров16K

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

Читать далее

Ускорение запроса MySQL с помощью обратного условия

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

Как удалось ускорить выполнение запроса MySQL почти на порядок с помощью простого изменения формулировки условия.

Читать далее

Марии (db) 15 лет! 15 причин чтобы её полюбить (или хотя бы с ней познакомиться)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6K

MariaDB Server исполняется 15 лет! Вот 15 причин, по которым разработчики и администраторы баз данных любят его!

Читать далее

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

Восстанавливаем работу MySQL. Решение задачи

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров3.4K

Привет! Я Саша Хренников, руководитель DevOps-юнита в KTS.

Недавно мы провели DevOps-челлендж, где нужно поднять неисправный экземпляр MySQL. Было нелегко — быстрее всех справились восемь сильнейших DevOps-мастеров, которым мы уже отправляем призовой мерч.

В этой статье я разберу задачу и покажу, как её можно решить двумя способами.

Читать далее

DevOps Challenge: восстановите работу MySQL и выиграйте крутой мерч

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

Привет! Я Саша Хренников, руководитель DevOps-юнита в KTS.

Наша команда дважды готовила для вас испытания. Сначала вы оживляли сломанное приложение, затем пробовали запустить k8s v0.1, и гардеробы счастливых победителей уже украшает наш мерч. Сегодня мы предлагаем вам пополнить их ряды: вас ждет новый челлендж и новое соревнование за место в списке достойнейших.

Вам предстоит восстановить работу экземпляра MySQL, запущенного с помощью MySQL-оператора. Подведем итоги 17 октября в 19:00, а десять самых быстрых участников получат футболки с Котзиллой по почте.

Читать далее

Как я делал систему сбора данных на провинциальном заводе и что из этого вышло

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

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

Меня зовут Валерий, и я проработал инженером на заводе шесть лет. Звучит как начало занятий по групповой психотерапии для выгоревших сотрудников, но о моём выгорании и причинах этого я расскажу как-нибудь в другой раз. В данной статье хочу поделиться историей о том, как я воплощал свой Pet-проект в рамках промышленного предприятия и что из этого вышло. Впереди много картинок, так что добро пожаловать под кат!
Читать дальше →

Когда существующих решений недостаточно: сложности построения собственных СУБД

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

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

Меня зовут Александр Кленов. Я тимлид разработки Tarantool DB в команде Tarantool. В этой статье я расскажу, почему мы решили добавить в свой продуктовый портфель Tarantool DB и что реализовали в инструменте, а также покажу на примере словарей, почему строить свою СУБД сложно. 

Читать далее

Решаем загадку Джиндоша из Dishonored 2 на SQL перебором с возвратом

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров16K


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

Сегодня мы рассмотрим решение непростой загадки Джиндоша из замечательной игры Dishonored 2 с помощью SQL.
SQL Может Многое!

Reverse engineering конкурсных списков поступления на бюджет в вузы России

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

Сегодня, 3 августа 2024 года, был последний день подачи документов в вузы России на бюджет.

Ситуация нервная: слишком много факторов.

Мать-недопрограммист не дождалась приказа

Ещё раз о том, какого размера должны быть тесты

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров6.2K

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

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

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