日期:2014-05-20  浏览次数:20930 次

mysql+java,insert慢
mysql是5.0.20版本,表是MyISAM 格式的 

操作系统是xp,cpu core2 E7400 2.8G 内存2G,文件格式ntfs

一共13个字段,一开始快的时候,insert 每秒19条,越往后越慢。添加13万条数据超过了6个小时。

也在网上查了查,按着网上的各种方法试了,没有什么变化。

sql语句就是拼字符串拼出来的。用的executeUpdate(sql);来执行的sql语句

别的什么操作都没有。


------解决方案--------------------
把ini文件里面的下面这个键的值,从MYISAM改为INNODB试试看
default-storage-engine

如果不行的话,考虑一下参考网上的说明,调整一下ini文件中其他的配置

------解决方案--------------------
1、如果不是很经常select、而是经常insert或update,请改成innodb。
2、插入多条的时候,如果是在循环中插入的,可以循环前后关闭auto commit,循环完再commit。
3、可以使用PreparedStatement减少编译sql带来的性能损耗。
------解决方案--------------------
一般用innodb

再有,尽量用那个batchUpdate来更新和插入,她以包为单位,做了些优化
------解决方案--------------------
引用:
1、如果不是很经常select、而是经常insert或update,请改成innodb。
2、插入多条的时候,如果是在循环中插入的,可以循环前后关闭auto commit,循环完再commit。
3、可以使用PreparedStatement减少编译sql带来的性能损耗。


------解决方案--------------------
你的目的是批量导入吗。用load data吧。先把你的数据写成文件。然后再直接导入。innodb到时候数据量大了。删除数据也很麻烦。