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

MySQL *

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

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

Kubernetes Volumes: MySQL с сетевой файловой системой (NFS)

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

Привет, Хабр! Сегодня мы узнаем, как запустить надежный одноэлементный инстанс базы данных MySQL в качестве пода в Kubernetes и как предоставить этот под другим приложениям в кластере.

Читать далее

Как новичку подарить жизнь telegram-боту на java

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

Мне 43 года и я профессиональный юрист. Неуемная интеллектуальная энергия и неудовлетворенность основной профессией 2,5 года назад привели меня в IT. Да-да, вот так – взрослая тетя с гуманитарным образованием решила попробовать себя на ниве программирования и замахнулась аж на такой язык как… JAVA!!!

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

Оглянувшись по сторонам и не встретив направленных на меня глаз я поняла – все эти глаза устремлены в гаджеты! Месседжеры и социальные сети правят умами. Значит, надо действовать через них.

И тут я вспомнила, что самый частый юридический вопрос, с которым ко мне обращаются друзья/знакомые – это просьба дать ту или иную форму документа (договора, расписки, заявления, доверенности и т.д.). Эврика! – нужна несложная мобильная программа с формами самых востребованных документов, чтобы их оставалось просто скачать и наполнить необходимыми сведениями. И тут самым коротким путем к конечному пользователю мне представился telegram-бот.

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

Читать далее

Оптимизация при работе с MySQL — экономия на спичках или с миру по нитке?

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

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

Читать далее

6 книг по MySQL для старта работы и погружения в технологию

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

MySQL — реляционная СУБД, использующая декларативный язык программирования SQL. Она предлагает все необходимые возможности для создания баз данных и написания серверных приложений.

В нашей подборке — 6 книг по MySQL, которые будут полезны как на старте, так и для развития навыков. Рекомендуйте свои книги в комментариях!
Читать дальше →

Резервное копирование и восстановление СУБД MySQL

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

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

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

Читать далее

Mysqldump в MySQL

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

Привет! Предлагаем вашему вниманию перевод не новой, но способной оказаться полезной статьи. Автор делится полезными возможностями утилиты Mysqldump.

Читать далее

Разворачиваем MySQL: репликации и секционирование

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

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

Читать далее

Как мы исправили древний сервис и ускорили вдвое поставку обновлений

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

Недавно нам довелось перевести на актуальные рельсы устаревший сервис. На этой махине у заказчика завязано много процессов — от таргетированной рекламы фармпрепаратов до доставки пробных образцов на реальный адрес. Но она не обновлялась 8 лет, и работала на древнем фреймворке Yii 1, который не поддерживается с 2015 года. Даже незначительные изменения нужно было вносить 3 недели.

Меня зовут Никита Швыряев, я руководитель отдела разработки компании «СмартАп Технолоджи». Этот проект мы перепиливали 4 месяца. Расскажу подробно, как это было, и что получилось.

Читать далее

Магия оптимизации SQL запросов

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

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

Читать далее

Не все типы репликации одинаково полезны, или почему две MySQL лучше одной

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

В это сложно поверить, но MySQL как продукт появился еще в 1995 году. Со временем название СУБД стало таким же нарицательным, как Xerox. Сегодня под этим термином могут понимать самые разные связки: от MySQL Native от компании Oracle до Percona XtraDB Cluster, а ведь есть еще MariaDB, Galera, Percona Server.

О том, как устроено генеалогическое древо MySQL можно снимать сериал с драконами, поэтому в материале мы сконцентрируемся на особенностях и ограничениях работы СУБД с разным типом репликации: MySQL sync и MySQL Semi-sync.
Читать дальше →

Почему стоит обратить внимание на PlanetScale

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

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

Если ваши данные неструктурированы или недостаточно хорошо структурированы, то преимущество варианта NOSQL очевидно, но если вы работаете со структурированными данными и/или будете выполнять много запросов, то вам лучше использовать SQL для обеспечения производительности, надежности и, возможно, соответствия нормативным требованиям.

Читать далее

StatefulSet в Kubernetes – примеры и наилучшие практики

Время на прочтение10 мин
Количество просмотров45K
image

Собираетесь ли вы развертывать базу данных в кластере Kubernetes? Если так – то это отличный выбор. Kubernetes – это инструмент оркестрации контейнеров, который при помощи множества инструментов координирует эксплуатацию приложений в контейнерах (подах). Один из этих контроллеров называется StatefulSet и используется для эксплуатации приложений, сохраняющих состояние.
Читать дальше →

PHP трюк для быстрого DELETE на большой таблице MySQL

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

Приветствую! У каждого разработчика рано или поздно наступает момент, когда появляется необходимость работать с большими базами данных. В мире таблиц весом более 5 гигабайт действуют немного иные законы "физики", нежели в маленьких табличках: приходится заботиться о тех вещах, о которых раньше даже и не задумывался. Сегодня я поделюсь трюком, который поможет быстро удалить много данных с таблицы MySQL с движком InnoDB.

Просветиться

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

Разбираемся что MySQL пишет на диск и зачем [часть 2]

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

Это вторая часть моих копаний во внутренностях MySQL. В первой части [habr] были затронуты запись страниц данных на диск (с промежуточной записью в DoubleWrite buffer) и запись бинлогов (с батчингом в виде group commit). В этой части я расскажу про redo log и как все части MySQL координируются для достижения надежной работы.

Читать далее

Аналитические панели в реальном времени. В поисках (Apache) Doris

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

Можно было бы назвать эту статью "Yet another analytical database", если бы не тот факт, что Apache Doris построен на архитектуре MPP, которая изначально ориентирована на параллельные вычисления и использование распределенного хранения и обработки данных на кластерах. Изначально проект Baidu, инструмент позволяет подготавливать аналитические панели с обновлением в реальном времени, при этом источниками данных могут быть как потоки из внешних источников (логи событий, time series-данные), так и источники из Data Lake (например, Apache Iceberg или Hive). В этой статье мы рассмотрим основные моменты использования Apache Doris на простом примере хранения и простой обработки данных о погоде.

Читать далее

Программа для ведения архива медиафайлов в полевых условиях

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

Почему для фольклорных экспедиций нужно писать программы?

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

Рассказываю, как мы описываем примерно 200 часов интервью за 10 дней экспедиции.

Читать далее

Индексирование JSON в MySQL

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


В середине 2015 года, в MySQL 5.7.8 появился тип данных JSON. С тех пор он применяется, чтобы избегать жёстких определений столбцов и сохранять документы JSON всех форм и размеров: логи аудита, параметры конфигурации, сторонние полезные нагрузки, пользовательские поля и др. Подробности — к старту нашего курса по анализу данных.

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

Перестаньте использовать SQLite в Unit-тестах

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

TLDR; Использование Sqlite в Laravel (или любых других PHP приложениях) для Unit-тестирования может привести к false positive результатам тестов. Тот код который пройдет тесты, не заработает после переезда в production и использования других БД, например, MySQL. Вместо этого разверните тестовую БД с использованием той же технологии и движка, которые будут использоваться вашим приложением в production.

Во-первых, позвольте мне начать с того, что я очень рад видеть, что вы проводите Unit-тестирование — вы на верном пути! Laravel познакомил многих разработчиков с миром Unit-тестирования, сделав утилиты для тестирования первоклассной частью фреймворка. Это круто! Но нам нужно убедиться, что наше чувство безопасности, которое мы получаем от наших Unit-тестов, верно.

Один из механизмов, которые Laravel предлагает для Unit-тестов, основан на использовании базы данных SQLite . Для ускорения выполнения тестов, база данных запускается непосредственно в оперативной памяти. Такое решение работает в 95% случаев. Но, дьявол кроется в деталях, в этих 5%.

Поговорим о причинах, почему это не лучший выбор.

Читать далее

MySQL. Оптимизация псевдо-больших данных

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

Работая над различными интересными задачами, мне только и приходилось слышать о существовании программ, которые работают с большими данными (в области действия одного сервера). И вот настал тот день, когда к нам обратился клиент, у которого сайт грузился очень долго. Задание для решения этой проблемы выдали моего коллеги. Немного прошло времени, до того как он подозвал меня к себе, с целью показать, столь диковинное для меня зрелище, связанное с объёмом таблиц, в которых находились данные после импорта категорий, характеристик, брендов товаров.

22 миллиона варианта категорий для нас показалось более чем приличным объёмом, тем более — вес таблицы с категориями получился чуть больше 1,6 Гиб. С такими размерами страницы начали грузиться дольше, чем хотелось бы. Ввиду того что, сроки на решение проблемы маленькие (чем быстрей тем лучше), руководство решило выделить на эту задачу, две единицы программистов, меня и моего коллегу. Разделив модуль на двоих, мне достались по объёму не самые сливки, но не менее ответственный участок, поскольку в нём — на загрузку данных, уходило значительное время.
Читать дальше →

Разбираемся что MySQL пишет на диск и зачем [часть 1]

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

Разработчики предъявляют высокие требования к базам данных: максимальная надежность (ничего из того, что было записано не должно быть утеряно ни при каких обстоятельствах), и, одновременно, максимальная производительность при различных видах нагрузки (Запись/Чтение или OLTP/OLAP). Достичь этих требований может быть не просто. Давайте попробуем разобраться, как это делает MySQL.

Размышляя о базе данных, легко представить таблицу базы данных как HashMap/BinaryTree, отображающие первичный ключ (primary key) в структурированные записи с данными. Такое хранилище может работать in memory. Но, как только мы захотим записать данные на диск, придется использовать какие-то алгоритмы во внешней памяти. Просто положить наш HashMap на диск не получится, потому что память и диски слишком разные: чтение/запись диска производится блоками, latency диска больше чем у RAM, а еще нельзя будет воспользоваться обычными указателями и аллокаторами памяти - все это придется заменить самостоятельно.

Читать далее

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