システムレベルの要素は、その一部を初期段階に決定する必要があるため、この話から始めます。これに該当しない場合は、システムを大きく変えることが重要でないのであれば、この節は簡単に目を通せば十分です。ただし、このレベルで変更を行うことでどの程度改善できるのかを自覚しておくことは必ず役に立ちます。
使用するオペレーティングシステムは非常に重要です。複数 CPU のコンピュータを使用するなら、Solaris(スレッド実装機能が優れている) または Linux(2.2 カーネルの SMP サポートが優れている) が良いでしょう。また、旧バージョンの Linux カーネルのデフォルトには 2G ファイルサイズの制限があります。このカーネルで 2G バイトより大きいファイルが必要な場合は、ext2 ファイルシステムの LFS (Large File Support) パッチを入手する必要があります。これ以外の ReiserFS や XFS などには 2G バイトの制限がありません。
MySQL を本番稼働させていないため、可能であれば選択前に候補のプラットフォームのテストを実行することを推奨します。
ほかのヒント:
RAM が十分にある場合は、スワップデバイスすべてを削除できる。オペレーティングシステムによっては、空きメモリーがある場合でもスワップデバイスが使用されることがある。
外部ロックを回避する。MySQL 4.0
以降、外部ロックはデフォルトですべてのシステムで使用不可能となっています。--external-locking
と--skip-external-locking
オプションは外部ロックの使用可能および不可能を明示的に宣言します。
外部ロックを使用しなければ、1 つのサーバーのみを起動している場合、MySQL の機能性には影響しません。myisamchk を起動する前にサーバーを停止してください (または関連するテーブルをロック/フラッシュしてください)。いくつかのシステム上では外部ロックを必ず使用不可に設定します。というのも、機能しないからです。
外部ロックが使用不可である唯一の状況は、同一データに対して複数の MySQL servers(クライアントではない) を実行している場合と、サーバーに対して初めにテーブルのフラッシュとロックを行う指示を出さずに、テーブルに対して myisamchk を実行する場合に限られる。MySQL クラスタを使用しているとき以外で、同じデータを同時にアクセスするのに複数の MySQL サーバーを使用することは推奨されていません。
LOCK TABLES
と
UNLOCK
TABLES
ステートメントは内部ロックを使用するため、外部ロックが不可となっている場合でも使用できます。