数据库设计如下:
id 主键自增长
username varchar(50)非空
password varchar(50)非空
age int非空
要求插入100W条测试数据。要求username和password都是独一无二的。
age在10~70之间随机。
解决一个问题的方式有很多种:但是每一种都有不同的写法和效率。
第一种写法: 手动插入100W条 大概需要N年
第二种写法: 通过for循环写一个基本的dao插入--->经常性报错
报错1:如下所示: 表示连接太多了,内存不够用
解决方法:用一次关一次,理解为及时回收内存资源。
获取连接失败java.sql.SQLNonTransientConnectionException:
Data source rejected establishment of connection, message from server:
"Too many connections"
报错2:如下所示: 表示:数据库一次性接受了太多了数据包,不够用了。
如何解决:1.更换电脑 2.修改相关配置文件 3. 使用多线程 4.修改数据库的引擎
5.终极办法:使用批量处理sql语句
获取连接失败com.mysql.cj.jdbc.exceptions.CommunicationsException:
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago.
The driver has not received any packets from the server.
mysql最常见的2大引擎:
默认:InnoDB 最安全的引擎 可以防止数据出现差错。但是丢失效率
其中还有一个引擎很常用:常用于测试:MyISAM 效率更高但是没有innoDB安全,不支持事务
测试完成之后切换成InnoDB
executeUpdate表示只能执行一条sql语句