2013-12-19 46 views
3

在包含10列的表中,除了單個數字列上的主鍵以及包含2,500行的單個INSERT INTO語句之外,沒有索引,執行插入需要40到60秒(單筆交易...上午1點約40秒,正常工作時間約60秒)。Google Cloud SQL - 緩慢的INSERT性能

我正在使用com.mysql.jdbc.GoogleDriver和D0實例。

我發現奇怪的是,當我使用本地開發環境並通過它進行遠程連接時,完全使用相同的代碼(只有diff是遠程連接),這些插入只需要大約10秒而不是40到60秒。因此,當它移動到應用引擎時,某些事情正在減速...

有什麼方法可以提高App Engine的部署性能嗎?

編輯: 我剛剛添加了代碼示例。請注意,運行開發服務器並訪問雲SQL時,運行速度非常快(在上次測試中爲10秒)。

下面是create table語句:

CREATE TABLE import_test (import_test_ID bigint NOT NULL COMMENT 'AUTOKEY' , INDEX (import_test_ID) , first_name varchar(30) COMMENT '' , last_name varchar(30) COMMENT '' , address varchar(60) COMMENT '' , city varchar(30) COMMENT '' , state varchar(10) COMMENT '' , zip varchar(15) COMMENT '' , PRIMARY KEY (import_test_ID) ) COMMENT '' 

和很長的刀片(約3100行),我在這裏已經下調:

INFO: INSERT INTO import_test (import_test_ID, first_name, last_name, address, city, state, zip) VALUES (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), ... 
+0

我只是嘗試升級到D2大小的實例,但不幸的是它具有與D0完全相同的性能 - 大約57秒可以插入2,500行。鑑於今天的計算能力,這似乎非常慢。 –

+0

您能否提供一些示例代碼來重現此問題? –

+0

剛剛添加的代碼示例 –

回答

0

您可以設置複製到異步的。

+0

您能解釋一下嗎? – i3arnon

+0

該實例設置爲異步。益智遊戲是爲什麼* same *實例在從開發人員環境(Eclipse)訪問它的10秒內完成插入,而部署時則爲45+秒。 –

+0

你確定它是*相同*實例嗎?在數據存儲支持項目的開發模式中,我知道它使本地數據庫變成了本地數據庫。對於數據存儲,它實際上是什麼使我在這裏是一個SQLite數據庫,它的行爲像數據存儲。所以我不敢肯定沒有挖掘出你正在開發模式下相同的數據庫。 – 2015-09-18 18:26:18