這是我的場景:我有一個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(美國西海岸)到數據庫服務器之間的延遲/數據傳輸問題?理想情況下,我想繼續使用遠程數據庫,但是我應該只使用數據庫的本地副本嗎?
你還沒有告訴我們每行有多少數據。如果您選擇大量具有較大值的列或列,這可能只是網絡延遲。 – Brad
編輯我的問題以包含表格描述 – Jeff
但是我們仍然不知道有多少數據。 「mediumtext」可以存儲大量的數據(我忘記了)。僅僅瞭解架構並不能回答「你通過網絡傳輸多少數據」的問題。 –