大幅なパフォーマンスの向上を実現するためには、システムレベルの要素の一部を早急に決定する必要があるため、その要素から始めます。ほかの場合は、このセクションをざっと目を通すだけで十分かもしれません。ただし、このレベルで適用する要素を変更することで、どの程度改善できるかの感覚をつかんでおくことは常に望ましいと考えられます。
本番環境で MySQL を使用する前に、目的のプラットフォームでそれをテストすることをお勧めします。
ほかのヒント:
RAM が十分にある場合は、すべてのスワップデバイスを取り外すことができます。オペレーティングシステムによっては、空きメモリーがある場合でも、特定のコンテキストで、スワップデバイスが使用されることがあります。
-
MyISAM
テーブルの外部ロックを避けます。MySQL 4.0 以降、すべてのシステムで外部ロックはデフォルトで無効にされています。--external-locking
と--skip-external-locking
オプションは外部ロックを明示的に有効および無効にします。外部ロックを無効にしても、1 台のサーバーしか実行していないかぎり、MySQL の機能に影響しません。myisamchk を実行する前にサーバーを停止する (または関連するテーブルをロックしてフラッシュする) ことを忘れないでください。一部のシステムでは外部ロックが機能しないため、無効にする必要があります。
外部ロックを無効にできない唯一のケースは、同じデータに対して複数の MySQL サーバー (クライアントではない) を実行している場合、またはサーバーにまずテーブルをフラッシュしてロックするように伝えずに、myisamchk を実行してテーブルをチェックする (修復しない) 場合です。MySQL Cluster を使用している場合を除き、複数の MySQL サーバーを使用して、同じデータに同時にアクセスすることは一般に推奨されません。
注記MySQL Cluster は現在 MySQL 5.6 でサポートされていません。MySQL Cluster のアップグレードを希望するユーザーは、代わりに MySQL Cluster NDB 7.3 に移行してください。これは MySQL 5.6 に基づいていますが、最新の
NDB
の改善と修正が含まれています。LOCK TABLES
およびUNLOCK TABLES
ステートメントは内部ロックを使用するため、外部ロックが無効にされている場合でもそれらを使用できます。