在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

如何实现88秒插入1000万条数据到MySQL数据库表

111次阅读
没有评论

共计 2405 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章将为大家详细讲解有关如何实现 88 秒插入 1000 万条数据到 MySQL 数据库表,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

我用到的数据库为,mysql 数据库 5.7 版本的

首先自己准备好数据库表

其实我在插入 1000 万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入 100 万条数据时候报错,控制台的信息如下:

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 4194304). You can change this value on the server by setting the max_allowed_packet variable.

出现上面的错误是因为数据库表的 max_allowed_packet 这个配置没配置足够大,因为默认的为 4M 的,后来我调为 100M 就没报错了

set global max_allowed_packet = 100*1024*1024*

记住,设置好后重新登录数据库才能看的设置后的值

show VARIABLES like  %max_allowed_packet%

代码如下:

package insert;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Date;
import com.mysql.jdbc.PreparedStatement;
public class InsertTest { public static void main(String[] args) throws ClassNotFoundException, SQLException {
 final String url =  jdbc:mysql://127.0.0.1/teacher  ; 
 final String name =  com.mysql.jdbc.Driver  ; 
 final String user =  root  ; 
 final String password =  123456  ; 
 Connection conn = null ; 
 Class.forName(name); // 指定连接类型  
 conn = DriverManager.getConnection(url, user, password); // 获取连接  
 if (conn!= null ) { System.out.println(  获取连接成功  );
 insert(conn);
 } else { System.out.println(  获取连接失败  );
 }
 }
 public static void insert(Connection conn) {
 //  开始时间
 Long begin = new Date().getTime();
 // sql 前缀
 String prefix =  INSERT INTO t_teacher (id,t_name,t_password,sex,description,pic_url,school_name,regist_date,remark) VALUES   ;
 try {
 //  保存 sql 后缀
 StringBuffer suffix = new StringBuffer();
 //  设置事务为非自动提交
 conn.setAutoCommit( false );
 //  比起 st,pst 会更好些
 PreparedStatement pst = (PreparedStatement) conn.prepareStatement(   ); // 准备执行语句
 //  外层循环,总提交事务次数
 for ( int i = 1 ; i  = 100 ; i++) { suffix = new StringBuffer();
 //  第 j 次提交步长
 for ( int j = 1 ; j  = 100000 ; j++) {
 //  构建 SQL 后缀
 suffix.append(  (  + uutil.UUIDUtil.getUUID()+  ,  +i*j+  , 123456  +  , 男  +  , 教师  +  , www.bbk.com  +  , XX 大学  +  ,  +  2016-08-12 14:43:26  +  , 备注  +  ),  );
 }
 //  构建完整 SQL
 String sql = prefix + suffix.substring( 0 , suffix.length() - 1 );
 //  添加执行 SQL
 pst.addBatch(sql);
 //  执行操作
 pst.executeBatch();
 //  提交事务
 conn.commit();
 //  清空上一次添加的数据
 suffix = new StringBuffer();
 }
 //  头等连接
 pst.close();
 conn.close();
 } catch (SQLException e) { e.printStackTrace();
 }
 //  结束时间
 Long end = new Date().getTime();
 //  耗时
 System.out.println(  1000 万条数据插入花费时间  :   + (end - begin) / 1000 +   s  );
 System.out.println(  插入完成  );
 }
}

关于“如何实现 88 秒插入 1000 万条数据到 MySQL 数据库表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2405字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 欧美成人天天综合在线视色 | 久久久中文字幕日本无吗 | 欧美一区二区三区四区在线观看 | 欧美爱爱爱爱免费视频 | 久久精品国产74国产 | 亚洲肥老太bbw中国熟女 | 亚洲情综合五月天 | 久久国产欧美日韩精品图片 | 少妇高潮流白浆在线观看 | 三级午夜宅宅伦不卡在线 | 成人福利网址永久在线观看 | 99热亚洲色精品国产88 | 欧美亚洲精品在线 | 韩国一级毛片视频免费观看 | 中文字幕在线观看亚洲日韩 | 一级毛片在线播放免费 | 国产精品视频白浆免费视频 | 国产成人夜间影院在线观看 | 国产精品亚洲第一区二区三区 | 午夜激情影院 | 自拍视频国产 | 全亚洲最大最好的私人影剧院 | 成人欧美精品久久久久影院 | 免费观看国产网址你懂的 | 国内视频在线 | 狠狠色狠狠色综合久久第一次 | 国产小视频免费在线观看 | 久爱www人成免费网站 | 青青青在线观看国产精品 | 人人妻人人澡人人爽人人精品 | 禁断看护妇中文字幕在线视频 | 久久无码人妻精品一区二区三区 | 美女隐私视频网站 | 日本黄色小视频在线观看 | 亚洲精品无码aⅴ中文字幕蜜桃 | 欧美精品一区二区在线观看播放 | 在线黄色大片 | 亚洲情xo亚洲色xo无码 | 无人区理论片手机看片 | 国产伦一区二区三区四区久久 | 欧美人禽杂交狂配 |