PreparedStatement的一些好处
1.PreparedStatement可以防止SQL注入
2.PreparedStatement可以操作Blob数据,Statement做不到.
3.PreparedStatement可以实现更高效的批量操作
演示PreparedStatement批量操作
在数据库操作中
update,delete后面如果没有条件,本身就可以就可以进行批量操作
因此这里演示主要针对与insert语句
如果使用PreparedStatement进行更加高效的批量插入
建表演示
CREATE TABLE goods (
id INT PRIMARY KEY auto_increment,
NAME VARCHAR ( 25 ));
用Statement
PareparedStatement比Statement快的原因
用PreparedStatement 方式1 稍微快点 这个好像慢了 但是理论来讲是可以快的
下面演示
PreparedStatement批量操作: addBatch(),executeBatch(),clearBatch()
哈哈哈 好像更加慢了
只是讲理论,就按理论来好了
Mysql默认情况下是不支持批处理的(5.几的时候支持了 具体忘记了) 但是这里自己电脑装的mysql8.0是可以的
如果不行,按下面操作
mysql服务器默认是关闭批处理的,我们需要通过一个参数,让mysql开启批处理的支持。
?rewriteBatchedStatements=true 写在配置文件的url后面
另外有可能,要执行的不是2000的整除 比如说20005 或者19999这样,也简单
注意 写了之后差别好大
加了?rewriteBatchedStatements=true之后 存入100W条数据
还可以优化 终极优化
原先是2000条一提交写入数据库 添加事务 最后一次性提交
插入1亿条数据
EXPLAIN SELECT * FROM goods WHERE id = 1111;
这将返回一个执行计划,包括表的连接方式、索引的使用情况以及其他关于查询执行的信息。你可以查看该执行计划,以获取关于查询性能的一些洞察。