私のシナリオは次のとおりです。米国東部地域でホストされているAmazon AWS経由でLAMPサーバーをホストしています。そのWebサーバーはローカルのmysql DBに接続し、すべてが素早くスムーズに実行されます。私は最近、自分のコンピュータにApacheをインストールしたので、ローカルで開発し、データベースをローカルに設定する代わりにライブサーバーのDBに接続するように設定することができます。リモートDBへの接続が遅い
問題は、ローカルマシンからDBサーバーへの要求が遅いことです。ランダムテーブルから1,10,100,1000、および10000の制限を選択する5つのクエリをテストしました。ここに私の結果は以下のとおりです。
プロダクションサーバがローカル接続:
Total time : 0.1961 seconds
Connection : 0.069 seconds
Query Limit 1 : 0.0001 seconds
Query Limit 10 : 0.0001 seconds
Query Limit 100 : 0.0003 seconds
Query Limit 1000 : 0.002 seconds
Query Limit 10000 : 0.1246 seconds
私のcompはリモートで接続する:
:ここTotal time : 8.2012 seconds
Connection : 0.813 seconds
Query Limit 1 : 0.2133 seconds
Query Limit 10 : 0.3243 seconds
Query Limit 100 : 0.8209 seconds
Query Limit 1000 : 1.2209 seconds
Query Limit 10000 : 4.8088 seconds
は言ったサーバーへの私のping結果です
Reply from xx.xx.xx.xxx: bytes=32 time=117ms TTL=42
Reply from xx.xx.xx.xxx: bytes=32 time=120ms TTL=42
Reply from xx.xx.xx.xxx: bytes=32 time=126ms TTL=42
Reply from xx.xx.xx.xxx: bytes=32 time=116ms TTL=42
Ping statistics for xx.xx.xx.xxx:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 116ms, Maximum = 126ms, Average = 119ms
そしてここでは、テーブルの説明です:
col1 mediumint(9) unsigned NO PRI NULL auto_increment
col2 varchar(128) YES NULL
col3 varchar(100) NO MUL NULL
col4 mediumtext YES MUL NULL
col5 tinyint(1) YES MUL 0
私はskip_name_resolve mysqlの変数について知っているとONに設定しているが、私は任意の改善を見ていません。これは私のcomp(米国西海岸)とDBサーバーとの間のレイテンシ/データ転送の問題ですか?理想的には、リモートDBを使用して作業を続けたいと思いますが、代わりにDBのローカルコピーを使用するだけですか?
各行のデータ量を教えてください。大きな値を持つ大量の列または列を選択する場合、これはネットワークの待ち時間になる可能性があります。 – Brad
テーブルの説明を含めるように私の質問を編集しました – Jeff
しかし、まだデータの量がわかりません。 "mediumtext"は大量のデータを保存することができます(私は手を忘れる)。スキーマだけを知っているだけでは、「どのくらいのデータを転送しているか」という質問には答えられません。 –