1

私はmysqlサーバーを実行しています。かなり高速になると聞いたので、DB全体がRAMにロードされるようにしたいと思います。

これは本当ですか?どうすればそれを確認できますか?

4

4 に答える 4

5

InnoDB を使用している場合は、 innodb_buffer_pool_size を少なくともデータとインデックスと同じ大きさに設定できます。次に、データにアクセスすると、データはメモリにキャッシュされ、その後のすべてのアクセスはメモリ経由で発生します。

データを事前にキャッシュしたい場合は、一般的なクエリをいくつか実行するか、テーブル/インデックスのフル スキャンを実行して、すべてのデータを強制的にメモリにロードすることができます。

mysqld には、起動時にサーバーにいくつかのコマンドを自動的に実行させることができる init-file オプションがあり、実行する事前キャッシュクエリを含めることができます。

メモリを使い果たしたくないので、innodb_buffer_pool_size の設定が大きすぎることに注意してください。

于 2008-09-27T19:21:42.473 に答える
2

まあ、1 つのオプションは ramdrive を使用することです..永続的ではありませんが。

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

于 2008-09-27T18:53:02.480 に答える
0

RAM内のテーブルは非常に高速です。

ストレージエンジンを変更することで、既存のテーブルを変更できます。ただし、サーバーの再起動後にデータを使用する場合は、バックアップを作成してください。

ALTERTABLEテストENGINE=MEMORY;

MEMORYテーブルにBLOBまたはTEXT列を含めることはできず、データとインデックスのサイズは使用可能なメモリに制限されることに注意してください。

于 2010-01-21T18:59:35.023 に答える
0

(完全を期すために)HEAPをテーブルエンジンとして使用できます。ただし、サーバーを再起動すると、HEAP テーブルに入力したデータはすべて失われることに注意してください。

于 2008-09-29T16:02:56.833 に答える