無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 6 最適化 :: 6.5 MySQL サーバの最適化 :: 6.5.6 MySQLの DNS の使用
« 6.5.5 MySQL でのメモリの使用

6.6 ディスク関連の問題 »
Section Navigation      [Toggle]
  • 6.5 MySQL サーバの最適化
  • 6.5.1 システム、コンパイル時間およびスタートアップパラメータのチューニング
  • 6.5.2 サーバパラメータのチューニング
  • 6.5.3 クエリオプティマイザパフォーマンスの管理
  • 6.5.4 MySQL の速度に対するコンパイルとリンクの影響
  • 6.5.5 MySQL でのメモリの使用
  • 6.5.6 MySQLの DNS の使用

6.5.6. MySQLの DNS の使用

新たなクライアントが mysqldに接続すると、mysqldによって要求を処理する新規のスレッドが作成されます。このスレッドでは、まずホスト名がホスト名キャッシュにあるかどうかがチェックされます。ない場合は、ホスト名の解決が試行されます。

  • オペレーティングシステムがスレッドセーフの gethostbyaddr_r()とgethostbyname_r()の呼び出しをサポートしている場合、スレッドではこれを使用してホスト名の解決が実行される。

  • オペレーティングシステムがスレッドセーフの呼び出しをサポートしていない場合、スレッドでは相互排除ロックを行い、代わりに gethostbyaddr()と gethostbyname()が呼び出される。この場合、他のスレッドでは最初のスレッドが相互排除ロックを解除するまでホスト名キャッシュ内のホスト名を解決できなくなることに注意する。

--skip-name-resolveを mysqldオプションを指定して起動すると、DNS ホスト名ルックアップを無効化できます。ただし、この場合は、MySQL 権限テーブルで IP 番号しか使用できなくなります。

非常に低速の DNS と多数のホストがある場合は、--skip-name-resolveで DNS ルックアップを無効化するか、HOST_CACHE_SIZEの定義(デフォルト値: 128)を拡張し、mysqldを再コンパイルすることで、パフォーマンスを改善できます。

--skip-host-cache オプションを使用してサーバを起動すると、ホスト名キャッシュを無効化できます。ホスト名のキャッシュをクリアするには、FLUSH HOSTSステートメントを使用するか、mysqladmin flush-hostsコマンドを実行します。

TCP/IP 接続すべてを認めない場合は、--skip-networkingオプションを指定して mysqldを開始します。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.