Обмен технологиями

Интервью - База данных и таблица кластера Mysql-3

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Предисловие

Знаете ли вы кластеры MySQL? Понимаете ли вы процесс репликации master-slave? Как вы справляетесь с огромными объемами данных? Эта статья посвящена представлению вопросов на собеседовании, и я желаю, чтобы каждый программист смог принять участие в этом! ! !


1. Кластер MySQL

В онлайн-среде мы обычно развертываем экземпляр Mysql с 1 главным и 1 подчиненным устройством или с 1 главным устройством с несколькими подчиненными устройствами для достижения высокой доступности Mysql и разделения чтения и записи. Синхронизация главного и подчиненного устройств Mysql выполняется через журналы binlog.

1.1 Построение кластера Mysql:

По поводу построения мастер-подчиненного кластера Mysql вы можете обратиться к статье блоггера ниже.

1.2 Процесс синхронизации Master-Slave:

Вставьте сюда описание изображения

2. Как Mysql справляется с хранением больших объемов данных?

В качестве хранилища реляционных данных MySQL будет иметь проблемы с производительностью, когда объем данных одной таблицы превысит 30 миллионов. Аналогичным образом, клиентское соединение и параллелизм, поддерживаемые одним экземпляром MySQL, имеют определенные узкие места. рассмотрите возможность использования технологии подбазы данных и подтаблицы для реализации.

2.1 Вертикальный раскол

2.1.1 Вертикальная подбиблиотека:

Например, современные микросервисы разделены по вертикали. Каждый модуль микросервиса может быть подключен к собственному экземпляру базы данных Mysql. Его особенностью является то, что он основан на таблицах и разделяет разные таблицы на разные библиотеки в зависимости от бизнеса. и расширять данные на разных уровнях, увеличивая количество подключений к диску I0 и объемам данных при высокой степени параллелизма;
Вставьте сюда описание изображения

2.1.2 Вертикальный стол:

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

Вставьте сюда описание изображения

2.2 Горизонтальный раскол:

2.2.1 Горизонтальная подбиблиотека:

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

2.2.2 Горизонтальный стол:

Разделите данные одной таблицы на несколько таблиц (могут находиться в одной библиотеке). Оптимизируйте проблемы с производительностью, вызванные чрезмерным объемом данных в одной таблице, избегайте конфликтов ввода-вывода и уменьшайте вероятность блокировок таблиц;
Вставьте сюда описание изображения

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

Мы установили экземпляры базы данных для разных предприятий в Spring-Boot, управляемые Spring-Cloud, и выполнили вертикальное секционирование. Чтобы справиться с хранением больших объемов данных, наш проект также использует промежуточное программное обеспечение Mycat для разделения баз данных и таблиц.

Установка Mycat и интеграция Spring-boot:

2.4 Сталкивались ли вы с какими-либо техническими проблемами при разделении баз данных и таблиц?

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


Подведем итог

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