Я думаю, что ответ на вышеуказанные вопросы зависит от таких факторов, как используемый вами механизм хранения, размер базы данных, а также выбранная вами архитектура репликации.
Я не думаю, что репликация будет иметь большое влияние на выполнение запроса для простой архитектуры master-> slave. Если, однако, у вас есть архитектура, в которой есть два мастера: одна запись операций, репликация на другой мастер, который обрабатывает исключительно чтение, а затем репликацию на подчиненный, который обрабатывает резервные копии, тогда вы, скорее всего, сможете представить некоторые из более позитивные сценарии. Прочитайте данные о блокировках и механизмах хранения, так как это может повлиять на ваш выбор.
Один простой способ показать, насколько репликация может быть положительной, - продемонстрировать простую стратегию резервного копирования. Например. Взятие часовых резервных копий на самом главном сервере может привести к тому, что основное приложение будет полностью остановлено на время резервного копирования (при использовании резервных копий с помощью mysqldump блокируются таблицы, чтобы операции чтения/записи не выполнялись). Принимая во внимание, что репликация на подчиненное устройство, то получение резервных копий оттуда отрицает этот аффект.
Если вы хотите показать подробную статистику, то, вероятно, лучше изучить некоторые инструменты для сравнения/профилирования (sysbench, mysqlslap, sql-bench, чтобы назвать несколько). Это может стать довольно сложным. Также может быть стоит посмотреть на Percona Toolkit и плагинов мониторинга Percona здесь: http://www.percona.com/software/
При использовании мастера-мастер архитектуры, можно ли разделит запрос на выборке с лимитом? Например: «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
Думаю, нет ничего, что мешало бы вам делать два выбора по двум мастерам. Использование LIMIT может быть не таким быстрым, как кажется: каждый из этих запросов сканирует все строки из индекса перед возвратом определенных 100 строк. Подобные запросы имеют отвратительное время отклика и делают mysqld слишком много. Это может помочь с точки зрения распространения нагрузки. Однако имейте в виду, как вы будете иметь дело с набором результатов, так как вы могли бы удвоить сложность и использовать сеть. 100 000 записей - это довольно небольшой объем данных, чтобы подумать об этом. – nonshatter