我注意到我的 mysql 插入非常慢。为了测试和演示,我使用了下表:
+----------+-----------------------------------------------+
| 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
当我在一个空表上运行这个只插入代码时,1K 插入需要 65 秒。我有 innodb_flush_log_at_trx_commit = 1 我需要它,因为表不能丢失任何数据。我的问题是,有了这套,插入会变得这么慢吗?还是我还缺少其他东西?