MY SETUP(例)
次の仕様のAmazon High CPUエクストララージEC2インスタンスでLinuxを実行しています。
MyISAMストレージエンジンで2つの大きなMySQLデータベースを実行しています。 1つは2 GB、もう1つは500 MBです。 MySQLができる限り多くのRAM /クエリ速度を最大化するために必要である)を使用していることを確認したいのですが、key_buffer_size
およびMyISAM_sort_buffer_size,
しかし、私はこれらを最適化することに慣れていません。
[〜#〜]質問[〜#〜]
これは難しいトピックです。ここでは回答できません。これについて books 全体が書かれています。 innodb_buffer_pool_sizeを十分に大きくすることをお勧めします。 myisamテーブルを使用している場合は、key_buffer_sizeを確認してください。また、table_cacheとmax_connectionsも考慮する必要があります。
ここにあなたを助けることができる何かがあります:
http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/http://www.mysqlperformanceblog .com/2007/11/01/innodb-performance-optimization-basics /http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/
編集:
@ drew010が言ったように、DBの使用方法を考慮することが重要です。大量の読み取りDBのチューニングは、大量の書き込みとは大きく異なります。また、他の戦略を検討することもできます。 Memcached、nosqlデータベースなどのように。
MySQLが必要なすべてのメモリを使用することを確認する必要がある場合は、InnoDBに切り替える必要があります。 MySQL FULLTEXT
検索機能を使用しない限り、深刻な問題は発生しません。
MyISAMの場合、内部MySQLキーバッファーやシステムキャッシュなど、いくつかのキャッシュが使用されます。最高のパフォーマンスが必要な場合は、いずれかのキャッシュのためのスペースを残す必要がありますが、特にデータベースが書き込みが多い場合は、MyISAMをお勧めしません。MyISAMは書き込み時にテーブル全体をロックしますが、InnoDBは影響を受ける行のみをロックします。
データベースをすべてメモリに配置したとしても、インデックスの不足やその他の理由により、クエリの実行が遅くなる可能性があります。