我注意到我的mysql插入非常緩慢。爲了測試和演示,我用下面的表格:非常慢Innodb插入:65secs爲空表中的1K條目
+----------+-----------------------------------------------+
| Table | Create Table |
+----------+-----------------------------------------------+
| ik_b64_8 | CREATE TABLE `incr_tbl` (
`cnt` int(11) NOT NULL,
PRIMARY KEY (`cnt`)
) ENGINE=InnoDB DEFAULT CHARSET=ascii COLLATE=ascii_bin |
+----------+-----------------------------------------------+
和Python代碼:
def profile_basic(cnt):
db = database.Connection("localhost","testing_delme","root", "")
t1 = time.time()
for ii in range(cnt):
db.execute("INSERT INTO testing_delme.incr_tbl VALUES (%s)", ii)
print time.time() - t1
當我運行此插入只在空表上的代碼,它消耗了65秒爲1K插入。我有innodb_flush_log_at_trx_commit = 1,我需要這些,因爲表格不能丟失任何數據。我的問題是,使用這套裝置,插入物會變得如此緩慢嗎?還是我錯過了別的東西?
您是否嘗試過使用一個單獨的語句將它們全部? – jeremyharris
開始交易;插入foo(c1)值(v1),(v2),(v3);承諾; –
我沒有在實際表格中嘗試過交易(以上僅用於演示)我一次只能插入1個條目。它將位於網絡服務器後面並捕獲用戶註冊。因此,這將無濟於事。但是,如果這提供了任何線索,我可以在這張桌子上試用它並讓你知道。 – Ethan