Вопрос

Как правило, узкое место в RDBMS (я являюсь пользователем MySQL). SSD обеспечивает отличную производительность по сравнению с обычными шпинделями.

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

Как замена привода 2 7TB 7,2K в минуту на 4 500 ГБ 7,2K RPM Drive?

Это было полезно?

Решение

Это может сильно зависеть от двигателя хранения.

Для Myisam, я думаю, это была бы отличная идея, потому что вы можете сделать данные столь же смежными, как вы хотите. Это принесет пользу запросам, связанным с объемными операциями и сканированием больших диапазонов. Набор инструментов для сжатия и ремонта Myisam для улучшения формата таблицы также может сделать доступ немного лучше. Одновременные вставки IMHO могут процветать в такой дисковой среде.

Innodb - совершенно другая история.

Если у вас есть innodb_file_per_table Отключены, данные могут быть разбросаны по всей IBDATA1 и, таким образом, разбросаны между множественными дисками. Вы можете запустить таблицу оптимизации против таблицы InnoDB и сделать страницы данных и индекса смежными, но это может вызвать две проблемы:

  1. Заставляет IBDATA1 расти
  2. Ухудшать производительность со временем

Не забывайте о четырех типах данных, которые находятся в IBDATA1:

  • Метаданные таблицы
  • Таблицы страниц данных
  • Индексные страницы данных
  • MVCC Данные

Существует постоянное написание данных MVCC для защиты целостности данных. Существует также постоянное взаимодействие с IB_LOGFILE0 и IB_LOGFILE1 (REDO LOGS). Существуют постоянные данные, промывая каждые 10 секунд от пула буферов InnoDB обратно к. В целом, можно с уверенностью сказать, что распространение данных на нескольких дисках и производительность ввода-вывода может показать улучшение производительности от маргинала до самой и не появится достаточного количества фрагментации в IBDATA1.

Теперь, если innodb_file_per_table включена, все может быть немного грязным. Вот почему:

Как только вы очистите Ibdata1 и отделите все таблицы Innodb от Ibdata1, у вас будет меньший IBDATA1. Тем не менее, каждый доступ к таблице InnoDB требует постоянного навигации через IBDATA1 через метаданные таблицы. Вы буквально не можете семантически отделить метаданные таблицы (Ibdata1) от таблицы (.ibd). Везде, где живет Ibdata1, диск ввод ввода/вывода всегда должен проходить через Ibdata1.

Общий эффект: фрагментация таблицы ограничена.

Как насчет того, чтобы помещать все файлы .ibd в другой набор дисков, кроме IBDATA1 и использования символов? По словам Percona, это создает больше хаоса.

ВЫВОД

Когда дело доходит до использования нескольких дисков на одном диске, я очень предпочитаю Myisam над Innodb.

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

Да, несколько дисков обеспечат лучшую пропускную способность благодаря замечательной технологии, которую мы называем RAID. Для базы данных вам понадобится RAID 10 (полосатые зеркала).

С 4 (n) дисками вы удваиваете (N/2) свою скорость записи и четырехкратную (n) последовательную пропускную способность. Время искать, хотя останется примерно таким же, и вы потеряете половину места для зеркалирования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top