2011-09-12 30 views
2

私のシナリオは次のとおりです。米国東部地域でホストされている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のローカルコピーを使用するだけですか?

+0

各行のデータ量を教えてください。大きな値を持つ大量の列または列を選択する場合、これはネットワークの待ち時間になる可能性があります。 – Brad

+0

テーブルの説明を含めるように私の質問を編集しました – Jeff

+0

しかし、まだデータの量がわかりません。 "mediumtext"は大量のデータを保存することができます(私は手を忘れる)。スキーマだけを知っているだけでは、「どのくらいのデータを転送しているか」という質問には答えられません。 –

答えて

0

これは古い質問ですが、これはおそらく一部の人にとってはおそらく関連性があります。これは単にデータ転送/レイテンシの問題であることが判明しました。ローカルWebサーバー上のクエリからリモートDB(全国)までのレイテンシは単純に足していました。私は開発のためにローカルのDBに接続することにしました。