2014-07-25 7 views
0

В SQL Server для базы данных IO Intensive или часто для VLDB мы создаем несколько файлов базы данных и помещаем их на отдельные диски/Luns для распространения рабочей нагрузки ввода-вывода.Может ли база данных mySQL иметь несколько файлов для распространения IO?

Я не могу понять, как это возможно с mySQL, так как все базы данных по умолчанию создаются в каталоге экземпляра, без возможности размещения их в другом месте или создания нескольких файлов. Что мне не хватает?

ответ

0

Большинство людей используют RAID для распространения нагрузки ввода-вывода.

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

Вы также можете переместить журнал повтора, двоичный журнал и журналы запросов в другой каталог за пределами каталога данных. Эти файлы имеют довольно высокую скорость использования ввода-вывода, поэтому это может быть способ балансировки нагрузки ввода-вывода.


Re ваш комментарий:

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

Если вы хотите, чтобы у данной базы данных был свой собственный физический диск в Windows, я бы использовал Диспетчер дисков Windows вместо mount a disk to an empty directory вместо отдельной буквы диска. Таким образом, вы можете сопоставить один подкаталог в каталоге данных MySQL на выделенный физический диск. Таким образом, файлы данных и индексов в этом подкаталоге будут на своем диске.

Есть некоторые файлы данных, которые MySQL управляет вне подкаталогов, специфичных для базы данных. Например, журналы, а также центральное табличное пространство InnoDB (что важно, даже если вы настраиваете innodb_file_per_table). Каждый из них позволяет указать путь, чтобы вы могли найти их в любом месте вашей файловой системы. Но вы не можете разделить их записи на таблицу или на базу данных.

MySQL - это другой продукт от Microsoft SQL Server (или Oracle и т. Д.), И вы не должны ожидать, что каждая функция SQL Server будет иметь прямой аналог в MySQL.

+0

Рейд часто не является вариантом. также, если у вас очень высокая используемая таблица, может быть полезно предоставить ей собственное хранилище. В SQL Server я бы просто создал новую файловую группу с файлами в выделенном хранилище, а затем создавал таблицы в этой файловой группе , Presto - таблица со своими выделенными дисками. Я предположил, что это будет доступно на всех РСУБД, но я изо всех сил пытаюсь понять, как он может работать с mySQL. –

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

  • Нет связанных вопросов^_^