请问大家的InnoDB执行效率 这两天在InnoDB做了一下测试,看看其运行效率,结果很让我失望,当然也有可能是我配置没有合理。结果:添加数据效率小于1200/s运行程序应该没有问题,在oracle上能达到8000/s~12000/s觉得这个效率比较低,请教大家的InnoDB能达到什么样的值,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是InnoDB的事务机制导致的问题,我以前也遇到过这个问题,原因是因为MYSQL的InnoDB缺省打开了AUTOCOMMIT标志,所以每条单独的插入语句MYSQL都会当作事务来执行的,例如:INSERT INTO table VALUES(1, 2);MYSQL会转换成为一下三条语句再执行:BEGIN TRANSINSERT INTO table VALUES(1, 2);COMMIT解决方法是,连接到数据库时,执行一条语句"SET AUTOCOMMIT = FALSE"然后,在你执行一批SQL语句时,先执行"BEGIN TRANS",然后执行要修改数据的SQL语句,最后再执行一次"COMMIT"提交数据修改事务。如下:pDatabase->Execute("BEGIN TRANS;");for(uint32 i = 0; i < 1000; i++){ pDatabase->Execute("INSERT INTO table VALUES(1, 2);");}pDatabase->Execute("COMMIT");关于事务(TRANS)等相关资料可以查询MYSQL帮助。 有BEGIN TRANSACTION 的时候,前面就没必要再加SET AUTOCOMMIT = FALSE.另用扩展插入语句 insert .. values (..),(..)....速度会很快mysql_dump默认生成的插入语句就是扩展的. Mysql 分区 查询未用到 从A服务器数据倒到B服务器 救命~数据库乱码~救命啊 怎么获得每个类别最便宜的前5件商品名称呢? mysql 双机热备问题 一个比较难的SQL语句,大家能帮忙看看吗? 不知道Mysql是不是支持Sql的嵌套查询! 哪里可以下载MySQL源代码和相关资料 错在那里?连接mysql的问题 帮忙看下错误 无头绪--跨表区域统计查询 how to read data from mysql except "select * from mysql.database" sentens?
INSERT INTO table VALUES(1, 2);
MYSQL会转换成为一下三条语句再执行:
BEGIN TRANS
INSERT INTO table VALUES(1, 2);
COMMIT
解决方法是,连接到数据库时,执行一条语句"SET AUTOCOMMIT = FALSE"
然后,在你执行一批SQL语句时,先执行"BEGIN TRANS",然后执行要修改数据的SQL语句,最后再执行一次"COMMIT"提交数据修改事务。
如下:
pDatabase->Execute("BEGIN TRANS;");
for(uint32 i = 0; i < 1000; i++)
{
pDatabase->Execute("INSERT INTO table VALUES(1, 2);");
}
pDatabase->Execute("COMMIT");关于事务(TRANS)等相关资料可以查询MYSQL帮助。
mysql_dump默认生成的插入语句就是扩展的.