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