今天记录一下由于mybatis批量插入造成的两个问题
1, java.sql.SQLException: Thread stack overrun: 246176 bytes used of a 262144 byte stack, and 16000 bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
网上查的
解决方法:
windows:在这个文件中my-small.ini thread_stack 建议调整到500K
linux:在my.cnf中配置thread_stack的值可解决此问题。一般可配置为256K。
在my.cnf的[mysqld]小节中加入下面的配置:
thread_stack=256K
保存,重启mysql服务即可。
查看配置是否生效
进入mysql命令环境中,用以下命令进行查看:
show variables like '%thread%';
mysql会显示出相应的配置参数,确定thread_stack项的value是否为期望值。
2,Column 'id' cannot be null
造成这个错误的原因我也没查到,我的数据id不可能为空,我猜测是长度太长了,数据没有取完,然后就批量插入造成
所以,最后我老老实实的把每2000条插入改为每200条插入就行了。
数据完美的也过来了,上面的两个错误也没了