システムレベルの要素は、その一部を初期段階に決定する必要があるため、この話から始めます。これに該当しない場合は、システムを大きく変えることが重要でないのであれば、このセクションは簡単に目を通せば十分です。ただし、このレベルで変更を行うことでどの程度改善できるのかを自覚しておくことは必ず役に立ちます。
使用するオペレーティングシステムは非常に重要です。複数 CPU のコンピュータを使用するなら、Solaris(スレッド実装機能が優れている)または Linux(2.2 カーネルの SMP サポートが優れている)が良いでしょう。 また、旧バージョンの Linux カーネルのデフォルトには 2G ファイルサイズの制限があります。このカーネルで 2G より大きいファイルがどうしても必要な場合は、ext2 ファイルシステムの LFS (Large File System)パッチを入手する必要があります。 これ以外の 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
ステートメントは内部ロックを使用するため、外部ロックが不可となっている場合でも使用できます。