iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何实现88秒插入1000万条数据到MySQL数据库表
  • 223
分享到

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

2024-04-02 19:04:59 223人浏览 八月长安
摘要

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

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

我用到的数据库为,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数据库表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 如何实现88秒插入1000万条数据到MySQL数据库表

本文链接: https://www.lsjlt.com/news/57455.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现88秒插入1000万条数据到MySQL数据库表
    这篇文章将为大家详细讲解有关如何实现88秒插入1000万条数据到MySQL数据库表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我用到的数据库为,mysql数据库5.7版...
    99+
    2022-10-18
  • MySQL数据库10秒内插入百万条数据的实现
    首先我们思考一个问题: 要插入如此庞大的数据到数据库,正常情况一定会频繁地进行访问,什么样的机器设备都吃不消。那么如何避免频繁访问数据库,能否做到一次访问,再执行呢? Java其实已...
    99+
    2022-11-12
  • Java怎么实现几十万条数据插入(30万条数据插入MySQL仅需13秒)
    本文主要讲述通过MyBatis、JDBC等做大数据量数据插入的案例和结果。 30万条数据插入插入数据库验证 实体类、mapper和配置文件定义User实体mapper接口mapper.xml文件jdbc.propertiessqlM...
    99+
    2023-08-16
    java mysql mybatis
  • Java实现几十万条数据插入实例教程(30万条数据插入MySQL仅需13秒)
    目录实体类、mapper和配置文件定义User实体mapper接口mapper.xml文件jdbc.propertiessqlMapConfig.xml不分批次直接梭哈循环逐条插入M...
    99+
    2023-05-14
    java导入十万级数据处理 java批量导入大量数据 java大量数据快速入库
  • mysql数据库实现插入千万级数据的方法
    mysql如何实现循环插入千万级数据?1.建表:CREATE TABLE `mysql_genarate` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uuid...
    99+
    2022-10-18
  • php如何实现sql server数据导入到mysql数据库
    这篇文章主要介绍了php如何实现sql server数据导入到mysql数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何实现sql server数据导入到mysql数据库文章都会有所收获,下面我们...
    99+
    2023-07-05
  • Mysql数据库sql语句实现多表关联插入
    前言 最近在工作中遇到了sql批量插入数据且两张表有关联id的问题。A、B两张表,B表存储了A表的id。A表虽然是自增id,但在生产环境业务处理中难免会出现并发问题。那么sql批量插入数据时B表如何存...
    99+
    2023-09-24
    数据库 mysql sql
  • python实现MySQL 数据库表格创建 数据插入及获取插入ID操作教程
    目录创建表格检查表格是否存在主键插入数据到表格插入多行获取插入的ID创建表格 要在mysql中创建表格,请使用"CREATE TABLE"语句。 确保在创建连接时定义了数据库的名称。 示例创建一个名为...
    99+
    2023-11-11
    Python操作MySQL表格数据 Python操作MySQL
  • MySQL中数据表如何实现数据插入、更新、删除操作
    小编给大家分享一下MySQL中数据表如何实现数据插入、更新、删除操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、插入数据 ...
    99+
    2022-10-18
  • 如何用python实现操纵mysql数据库插入
    这篇文章主要讲解了“如何用python实现操纵mysql数据库插入”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用python实现操纵mysql数据库插入”吧!python操纵mysql...
    99+
    2023-06-28
  • 如何实现MySQL中插入数据的语句?
    如何实现MySQL中插入数据的语句?在使用MySQL数据库时,插入数据是一项非常基础且常见的操作。通过插入数据,可以将新的记录添加到数据库表中,为业务操作提供支持。本文将介绍如何使用MySQL中的INSERT语句来实现数据插入操作,并提供具...
    99+
    2023-11-08
    语句 关键词:MySQL 插入数据
  • 数据库中如何实现大量数据快速插入方法
    这篇文章将为大家详细讲解有关数据库中如何实现大量数据快速插入方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1     ...
    99+
    2022-10-19
  • PHP如何实现MySQL数据库分表
    本篇内容介绍了“PHP如何实现MySQL数据库分表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、MySQL分表的概念MySQL分表是将一...
    99+
    2023-07-06
  • mysql数据库如何实现连表查询
    这篇文章将为大家详细讲解有关mysql数据库如何实现连表查询,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  1.首先介绍表连接分类(内连接,外连接,交叉连接)和连接方法...
    99+
    2022-10-18
  • 如何实现MySQL表数据的导入导出
    这篇文章主要讲解了如何实现MySQL表数据的导入导出,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。数据导出1.  使用 SELECT ...INTO...
    99+
    2022-10-18
  • MySQL数据中如何实现插入、更新与删除
    小编给大家分享一下MySQL数据中如何实现插入、更新与删除,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!案例:创建表books,...
    99+
    2022-10-18
  • 如何实现MySQL中插入多行数据的语句?
    如何实现MySQL中插入多行数据的语句?在MySQL中,有时我们需要一次性插入多行数据到表中,这时我们可以使用INSERT INTO语句来实现。下面将介绍如何使用INSERT INTO语句来插入多行数据,并给出具体的代码示例。假设我们有一个...
    99+
    2023-11-09
    MySQL 插入 多行
  • 我们如何使用 JDBC 将文件插入/存储到 MySQL 数据库中?
    一般来说,文件的内容在 MySQL 数据库中存储在 Clob(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)数据类型下。JDBC 提供了对 Clob 数据类型的支持,将文件的内容存储到数据库的表中。PreparedSt...
    99+
    2023-10-22
  • php如何实现插入数据库并进行转义操作
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php如何实现插入数据库并进行转义操作?php 写入数据库时特殊字符串处理(何时转义特殊字符)在处理MySQL和GET、POST的数据时,常常要对数据的引号进行转义操作。...
    99+
    2015-03-18
    php 转义
  • 如何使用python实现简单爬取网页数据并导入MySQL中的数据库
    前言:要使用 Python 爬取网页数据并将数据导入 MySQL 数据库,您需要使用 Requests 库进行网页抓取,使用 BeautifulSoup 库对抓取到的 HTML 进行解析,并使用 PyMySQL 库与 MySQL 进行交互。...
    99+
    2023-10-18
    python 数据库 爬虫
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作