Конфигурация «База данных только для чтения» против «База данных для чтения и записи» в mysql

Мы используем две базы данных, одна для read-only, а вторая для «read and write», и мы можем достичь того, что мы получаем.

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

Это связано с тем, что мы используем базу данных с высокой конфигурацией «Чтение, запись» по сравнению с базой данных «Только для чтения». (Amazon RDS)

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

Это одни и те же запросы с одной и той же схемой, данными и индексами? Если нет, то они не сопоставимы. Когда вы говорите «только для чтения», вы имеете в виду читать реплику или что-то еще?

Schwern 29.07.2019 05:58

Да тот же запрос, это реплика "базы данных для чтения и записи" только для чтения

Arvind 29.07.2019 06:02

Возможно, кэш на реплике еще не прогрелся. Недавно об этом была статья: percona.com/blog/2019/06/25/adaptive-hash-index-on-aws-auror‌​а

Bill Karwin 29.07.2019 06:18

Когда вы говорите «иногда», как часто? И «больше времени» это как 10 мс против 20 мс или 10 мс против 200 мс? Всегда ли ведомый медленнее или лидер тоже иногда медленнее? Я спрашиваю, потому что ожидаются некоторые колебания производительности. Выполняли ли вы обычные действия по проверке журнала медленных запросов и частоты попаданий в кэш? Актуальны ли таблица статистики и таблицы оптимизированы?

Schwern 29.07.2019 06:19

@Schwern это случилось дважды за последний месяц, только «10 мс против 200 мс», только ведомый медленнее, а не лидер, поскольку лидер имеет лучшую конфигурацию, чем ведомый.

Arvind 29.07.2019 06:29

Конфигурация сервера read-only ниже, чем у сервера read and write? Поскольку read-only выполняет всю часть запросов, конфигурация должна быть лучше, чем у основного сервера (чтение и запись).

James 29.07.2019 06:29

Сервер @James такой же, только база данных другая

Arvind 29.07.2019 06:31

какой экземпляр вы используете для обоих?

James 29.07.2019 06:33

Сервер находится на Heroku и базе данных M4 Large (чтение и запись) && T2 Mid (только чтение)

Arvind 29.07.2019 06:36

Аааа ... Поскольку у вас 8 ГБ ОЗУ (чтение и запись) и только 4 ГБ (только чтение). Часто запрос извлекается из реплики чтения, поэтому он должен быть более мощным, чем (чтение и запись). Это та же концепция, что и репликация Master-Slave.

James 29.07.2019 06:46

@ Джеймс, я не понял, что ты хочешь сказать, конфигурация хороша или ее нужно изменить?

Arvind 29.07.2019 06:50

Изменить.. сделать (только для чтения) выше

James 29.07.2019 06:52

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

James 29.07.2019 07:24
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
3
13
922
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Server is on Heroku and database M4 Large (Read & Write) && T2 Mid (Read Only) – Arvind 7 mins ago

Ваши базы данных находятся на другом "железе", у них будет разная производительность.

Самое существенное отличие, которое я вижу, это память: 4 ГБ против 8 ГБ. Это повлияет на объем кэширования каждой базы данных. Ваш лидер (чтение и запись) имеет больше памяти и может кэшировать больше. Ваш последователь (только для чтения) с меньшим объемом памяти может вытолкнуть из кеша то, что осталось у вашего лидера.

Существует также производительность сети. t2.medium имеет рейтинг «от низкого до среднего», а m4.large — «умеренный». Что это на самом деле означает, я понятия не имею, кроме того, что у T2 их меньше.

Наконец, инстанс T2 — это "взрывной", что означает, что он обычно работает примерно на 20% мощности ЦП с пиками до максимальной производительности, используя кредиты ЦП. Если у вас заканчиваются кредиты ЦП в стандартный режим (по умолчанию для T2), производительность ЦП упадет. Возможно, ваш соратник T2 находится в стандартном режиме, и у него периодически заканчиваются кредиты процессора.

@Arvind Мне любопытно, было ли это что-то конкретное, например, нехватка кредитов ЦП.

Schwern 29.07.2019 07:31

это было связано с использованием процессора

Arvind 08.08.2019 11:41

Другие вопросы по теме