2014-09-05 107 views
0

我有一個關於在RDS中插入行的問題。 我在這個例子中插入了301119個記錄在1個表中。AWS RDS慢速插入

這裏我的日誌上那些插入批次:

Amazon : 

2014-09-05 12:12:47,245 - Processing 30119 users 
2014-09-05 12:15:01,508 - 5000 users updated in transaction 
2014-09-05 12:17:29,672 - 10000 users updated in transaction 
2014-09-05 12:19:30,499 - 15000 users updated in transaction 
2014-09-05 12:21:38,866 - 20000 users updated in transaction 
2014-09-05 12:23:26,659 - 25000 users updated in transaction 
2014-09-05 12:25:16,727 - 30000 users updated in transaction 
2014-09-05 12:25:19,376 - 30119 users updated in transaction - DONE 
2014-09-05 12:25:19,379 - Process completed in **752134** ms 


Local : 

2014-09-05 12:33:20,767 - Processing 30119 users 
2014-09-05 12:33:39,692 - 5000 users updated in transaction 
2014-09-05 12:33:50,949 - 10000 users updated in transaction 
2014-09-05 12:33:59,476 - 15000 users updated in transaction 
2014-09-05 12:34:06,962 - 20000 users updated in transaction 
2014-09-05 12:34:14,874 - 25000 users updated in transaction 
2014-09-05 12:34:22,945 - 30000 users updated in transaction 
2014-09-05 12:34:23,111 - 30119 users updated in transaction - DONE 
2014-09-05 12:34:23,112 - Process completed in **62345** ms 

查詢是1臺一個簡單的批量插入。

我的本地速度不是很快,而且這些結果很奇怪......在AWS中運行相同插入需要12倍以上......所以,出現了一些問題......這是一個配置問題或其他問題?

一些指針將非常歡迎:) :)

謝謝!

+0

你有什麼樣的實例類型?如果你有一個微型實例,這並不奇怪。 – 2014-09-05 20:57:12

+0

實際上,我們升級到5000個IOPS的X-LARGE,速度很慢,現在不是比我的本地慢12倍,而是慢了10倍...非常令人不安: -/ – julien 2014-09-08 15:08:20

+0

插入數據的過程是什麼?該進程是否與RDS實例在相同的可用區中運行? – 2014-09-08 15:32:33

回答

4

所以,我想通了!在搜索並調整配置之後,我們每秒大約有300次插入,我們禁用了innodb_flush_log_at_trx_commit(1 - > 0)和sync_binlog(1 - > 0),並且我們上升到1500-2000插入每秒! 因爲我們可以丟失最後一次交易/提交如果數據庫崩潰,所以我們去了,它現在正在快速發展!

希望它可以幫助一些其他人有同樣的問題!

+0

您可以指導您如何做到這一點 – BastanteCaro 2016-09-16 12:26:50

+0

您必須轉到AWS控制檯。在其中您可以找到您的實例並修改這些設置。 – julien 2016-09-19 14:06:18

+0

@ julien是否可以將sync_binlog更改爲0?更改後我需要重新啓動實例? 我問,因爲我不太清楚,而且我有同樣的問題。我所有的插入和更新都很慢。 – Claytinho 2017-12-12 21:03:54