2017-02-22 64 views
0

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

+0

прочитайте эту документацию для ускорения выполнения запроса [ссылка] (https://dev.mysql.com/doc/refman/5.7/en/select-optimization.html) –

+0

Вы имеете в виду, что столько ОЗУ, что сервер может просто держать все там и только нужно использовать диск для сброса изменений? Или иметь временную молниеносную базу данных, которую можно удалить при выключении? –

ответ

1

Вы можете создать таблицу, в которой используется двигатель MEMORY. При запуске службы вы заполняете таблицу из другой, которая присутствует на диске, и синхронизируйте ее с таблицей, которая присутствует на диске через определенные промежутки времени. INSERT INTO ... SELECT * FROM ...

Примечание: Помните, что когда сервер или служба mysql останавливаются, все данные, хранящиеся в таблице, теряются!

Более подробную информацию о ПАМЯТЬ двигателя можно найти на https://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html

0

Это должно быть комментарием - но его немного долго.

Что вы пытаетесь достичь этим?

В результате у вас будет 2 проблемы: данные будут перезаписаны после цикла питания (или перезагрузки mysql) и будут ограничены tmp_table_size и max_heap_table_size.

Если вы просто хотите ускорить доступ к необработанным данным, тогда Innodb будет кэшировать столько данных в памяти, сколько вы этого позволяете. MyISAM будет кэшировать индексы в памяти (а в системах Linux и т. Д. Данные таблицы кэшируются, но не на неопределенный срок). Но первое место, которое вы должны искать, если у вас возникают проблемы с производительностью, - это запросы, выполняемые против базы данных.

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