2008-09-27 6 views

ответ

5

Если вы используете InnoDB, то вы можете установить innodb_buffer_pool_size быть, по крайней мере, как большой, как ваши данные и индексы. Затем при доступе к данным он будет кэшироваться в память, и все последующие обращения будут выполняться через память.

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

Существует опция init-file для mysqld, которая может автоматически запускать несколько команд при запуске, где вы могли бы включать в себя запросы до кэширования для выполнения.

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

2

Ну, один из вариантов - использовать ramdrive .. хотя он не является постоянным.

http://www.linuxforums.org/forum/misc/670-how-create-ram-drive-linux.html

+0

Я действительно больше искал способ заставить mysql загружать его в свой собственный барабан, хотя это и есть интересная альтернатива, которую нужно запускать при запуске. – Thomaschaaf 2008-09-27 19:13:31

+0

Теоретически ОС все еще может закончиться использованием файла подкачки на физическом диске. – 2008-09-28 17:27:46

0

(Только для полноты,) Вы можете использовать HEAP в качестве настольного двигателя. Но имейте в виду, что все данные, которые вы помещаете в таблицу HEAP, исчезают при перезагрузке сервера.

0

Таблицы в оперативной памяти очень быстрые.

Вы можете изменить существующие таблицы, изменив их механизм хранения. Но сделайте резервную копию, если вы хотите использовать данные после перезапуска сервера.

ALTER TABLE test ENGINE = MEMORY;

Помните, что таблицы MEMORY не могут содержать столбцы BLOB или TEXT, а размер данных и индексов ограничен доступной памятью.

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

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