关于Group Commit网上的资料其实已经足够多了,我这里只简单的介绍一下。
众所周知,在MySQL5.6之前的版本,由于引入了Binlog/InnoDB的XA,Binlog的写入和InnoDB commit完全串行化执行,大概的执行序列如下:
InnoDB prepare (持有prepare_commit_mutex);
write/sync Binlog;
InnoDB commit (写入COMMIT标记后释放prepare_commit_mutex)。
当sync_binlog=1时,很明显上述的第二步会成为瓶颈,而且还是持有全局大锁,这也是为什么性能会急剧下降。
(1)乱码 一般问题是mysql编码问题。txt文档 是你 没有utf-8格式的,你可以用notepad++来代替记事本,编辑一下。一般mysql使用了utf-8格式。(2) 为了避免错误,你还是使用insert 语句,执行程序来导入这些。也可能在导入的过程中,有一些字符(隐藏字符比如空格 tab 换行等)引起问题,这个可能性不大。设置你的eclipse的编码方式在eclipse的属性里面设置编码方式为utf-8;设置你的filter的字符集,用setCharacterEncoding()进行页面的字符集设置;在连接数据库的时候连接词加上字符集转换jdbc:mysql://127.0.0.1:3306/db?useUnicode=true&characterEncoding=gbk&mysqlEncoding=utf-8
要你修改的是你的项目里面的web.xml里面的配置,不过这是在你在代码中设置了要去读取配置文件中的设置的编码方式。跟你修改mysql里面的关系不大
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)