某天没事测试了一下mysql和sqlserver的读写速度。
分别用两者插入1000条、1万条、10万条,然后查询1000条、1万条、10万条。发现sqlserver和mysql的查询速度不相上下,但插入速度却相差非常大。那么差异具体有多大呢?不好意思,当时没记下了。只记得mysql平均插入一条要17毫秒,sqlserver插入一条平均要0.5毫秒。
后来发现把innodb_flush_log_at_trx_commit参数由默认的1改为0后(这个参数的大概意思是记录日志的模式,0相当于sqlserver里的简单模式),插入速度就快很多了。这回数据有记下了了,呵呵。具体如下所示:
插入1000条,用时0.063秒,平均每条0.063毫秒;
插入1万条,用时0.969秒,平均每条0.096毫秒;
插入10万条,用时7.968秒,平均每条0.07968毫秒;
插入100万条,用时95.265秒,平均每条0.095265毫秒;
哇塞,怎么快了这么多啊???再试了几次,数据都差不多。说明mysql写日志比较费时啊,对需要快速插入数据、而数据又不是很关键、允许意外丢失的项目,可以考虑一下把日志记录改成简单模式啊。
最后补充一下,我是在windows下测试的。用的mysql版本是5.0.15,数据引擎是Innodb。sqlserver是sqlserver2000。