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

Вид: 16305|Ответ: 0

[Источник] Задержка между мастером и ведомым базами данных приводит к неточному разрешению запросов

[Скопировать ссылку]
Опубликовано 2020-4-2 20:41:03 | | | |
【Предисловие】

Когда данные достигают определённого объёма, база данных становится узким местом всей системы, и стратегия оптимизации обычно принимается как разделение чтения и записи, а база данных реализует разделение чтения и записи, разделяя основную базу данных от базы данных (операция запроса записи из основной базы данных, операция запроса чтения из базы данных);

【Идеи для решения задержек данных】

1. Принцип синхронизации мастер-слейв (здесь возьмём самый популярный MySQL в качестве примера)

Вот схематическая схема классической синхронизации данных MySQL мастер-слейв через binlog:



2. Как возникают проблемы?

1. Из приведённой выше схемы несложно узнать, что синхронизация мастер-слейв имеет определённую задержку, которая влияет на размер задержки:

(1) Размер задержки зависит от объёма данных, полученных от последней синхронизации до настоящего времени

(2) Текущая сетевая ситуация между серверами

(3) Давление самого мастер-слейв-сервера (процессор, память, ввод и т.д.)

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

3. В общих бизнес-ситуациях задержку миллисекунд можно игнорировать;



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

3. Решения по задержке данных:

1. Схема 1: Запись программы двойной (одновременно записывать основную базу данных и читать её)



2. Схема 2: Прочитайте программу, чтобы проверить основную базу данных



3. Схема 3: Записать основную базу данных и записать кэш (установить определённое время истечения, обычно немного превышающее максимальную задержку синхронизации базы данных), прочитать программу, прочитать кэш и прочитать ведомую базу данных



4. Преимущества и недостатки трёх схем:

1. Схема 1: Двойное письмо требует определённого уровня производительности, что относительно просто реализовать и не подходит для сценариев с большим количеством одновременных записей;

2. Схема 2: Программа чтения влияет на производительность основной библиотеки, что относительно просто в реализации и не подходит для сценариев с большим количеством одновременного чтения.

3. Схема 3: В большинстве случаев чтение и запись требуют большей производительности записи, что сложнее реализовать и подходит как для одновременных чтений, так и для записи (чтение и запись в кэше очень быстрые);

【Резюме】

1. Реализация важна, но ещё важнее сама идея;

2. Многие основные принципы и идеи универсальны
Исходный текст:https://blog.csdn.net/zhanghan18 ... le/details/91638443




Предыдущий:.net/c# ado.net выполняет хранящиеся процедуры с возвращаемыми значениями
Следующий:MSSQL С (NOLOCK) грязным чтением
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com