2011-09-12 131 views
2

這是我的場景:我有一個LAMP服務器通過亞馬遜AWS託管,託管在美國東部地區。該Web服務器連接到本地的MySQL數據庫,並且一切都運行得很快而且順利。我最近在計算機上安裝了Apache,因此我可以在本地進行開發,並將其設置爲連接到活動服務器上的數據庫,而不是在本地設置數據庫。緩慢的mysql連接到遠程數據庫

問題是,從本地機器到數據庫服務器的請求很慢。我測試了5個查詢,從隨機表中選擇了1,10,100,1000和10000的限制。下面是我的結果:

生產服務器在本地連接:

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 

我的補償遠程連接:

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(美國西海岸)到數據庫服務器之間的延遲/數據傳輸問題?理想情況下,我想繼續使用遠程數據庫,但是我應該只使用數據庫的本地副本嗎?

+0

你還沒有告訴我們每行有多少數據。如果您選擇大量具有較大值的列或列,這可能只是網絡延遲。 – Brad

+0

編輯我的問題以包含表格描述 – Jeff

+0

但是我們仍然不知道有多少數據。 「mediumtext」可以存儲大量的數據(我忘記了)。僅僅瞭解架構並不能回答「你通過網絡傳輸多少數據」的問題。 –

回答

0

我知道這是一個老問題,但它仍然可能與某些人有關。事實證明,這只是一個數據傳輸/延遲問題。本地Web服務器上的查詢到遠程數據庫(全國各地)的延遲只是簡單地加在一起。我決定連接到本地數據庫進行開發,所有事情都更快。