2012-06-07 2 views
0

Мы должны показать разницу, чтобы показать преимущества использования репликации. У нас есть два компьютера, которые связаны с Teamviewer, поэтому мы можем показать нашему классу, что мы делаем точно.Что такое хороший способ показать эффект репликации в MySQL?

  • Возможно ли показать разницу в производительности? (Сколько времени требуется для выполнения определенных запросов?)
  • Какие запросы нужно проверить? (другими словами, где разница между использованием/не использованием репликации самой большой)
  • Как мы должны заполнить нашу базу данных? Сколько данных должно быть?

Большое спасибо!

ответ

0

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

Я не думаю, что репликация будет иметь большое влияние на выполнение запроса для простой архитектуры master-> slave. Если, однако, у вас есть архитектура, в которой есть два мастера: одна запись операций, репликация на другой мастер, который обрабатывает исключительно чтение, а затем репликацию на подчиненный, который обрабатывает резервные копии, тогда вы, скорее всего, сможете представить некоторые из более позитивные сценарии. Прочитайте данные о блокировках и механизмах хранения, так как это может повлиять на ваш выбор.

Один простой способ показать, насколько репликация может быть положительной, - продемонстрировать простую стратегию резервного копирования. Например. Взятие часовых резервных копий на самом главном сервере может привести к тому, что основное приложение будет полностью остановлено на время резервного копирования (при использовании резервных копий с помощью mysqldump блокируются таблицы, чтобы операции чтения/записи не выполнялись). Принимая во внимание, что репликация на подчиненное устройство, то получение резервных копий оттуда отрицает этот аффект.

Если вы хотите показать подробную статистику, то, вероятно, лучше изучить некоторые инструменты для сравнения/профилирования (sysbench, mysqlslap, sql-bench, чтобы назвать несколько). Это может стать довольно сложным. Также может быть стоит посмотреть на Percona Toolkit и плагинов мониторинга Percona здесь: http://www.percona.com/software/

+0

При использовании мастера-мастер архитектуры, можно ли разделит запрос на выборке с лимитом? Например: «SELECT * FROM .. LIMIT 0,100» на первом и «SELECT * FROM .. LIMIT 100, 100» на втором? Я видел улучшение производительности по сравнению с одним запросом: «SELECT * FROM .. LIMIT 0,200» Мы используем базу данных с ~ 100 000 записей, старую базу данных для http://www.funda.nl/ (вы можете посмотреть/купить там дома). edit: нажатие enter комментирует вместо окончания строки .. и я могу редактировать только 5 минут. раздражает :)) – Arathanka

+0

Думаю, нет ничего, что мешало бы вам делать два выбора по двум мастерам. Использование LIMIT может быть не таким быстрым, как кажется: каждый из этих запросов сканирует все строки из индекса перед возвратом определенных 100 строк. Подобные запросы имеют отвратительное время отклика и делают mysqld слишком много. Это может помочь с точки зрения распространения нагрузки. Однако имейте в виду, как вы будете иметь дело с набором результатов, так как вы могли бы удвоить сложность и использовать сеть. 100 000 записей - это довольно небольшой объем данных, чтобы подумать об этом. – nonshatter

0

Replication имеет ряд преимуществ:

  • грубости увеличивается с установкой ведущий/ведомый. В случае возникновения проблем с мастером, вы можете перейти к ведомому в качестве резервного
  • Лучше время отклика для клиентов могут быть достигнут путем разделения нагрузки для обработки клиентских запросов между ведущими и ведомыми серверами
  • Еще одно преимущества использования репликации заключается в том, что вы можете выполнить резервное копирование базы данных с помощью ведомого сервера, не нарушая работу мастера.

Использование репликации всегда безопасно, чтобы вы делали репликацию на своем сервере производства всегда без сбоев, это будет полезно.

Вы можете показать значение seconds_behind_master при показе производительности репликации, это показывает, как «поздно» ведомое устройство это значение не должно быть более 600-800 секунд, но здесь имеет место задержка в сети. Убедитесь, что Master и Slave серверов настроены правильно Теперь Вы можете остановить slave сервер и пусть Master сервера имеют некоторые обновления/вставки (объемные вставки) происходит и теперь начинают slave сервера вы увидите большое seconds_behind_master значения должно быть держать на снижение до достигает 0 значение.

Существует инструмент под названием MONyog - MySQL Monitor and Advisor, который показывает статус репликации в режиме реального времени. enter image description here

Кроме того, какая репликация использовать ли на основе заявления или строки на основе была объяснены здесь http://dev.mysql.com/doc/refman/5.1/en/replication-sbr-rbr.html

Смежные вопросы