首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql批量添加数据 脚本

基础概念

MySQL 批量添加数据是指通过脚本一次性向数据库表中插入多条记录,而不是逐条插入。这种操作可以显著提高数据插入的效率,特别是在需要插入大量数据时。

相关优势

  1. 提高效率:批量插入比逐条插入更快,因为减少了与数据库的交互次数。
  2. 减少资源消耗:减少了网络传输和数据库处理的开销。
  3. 简化代码:可以通过简单的脚本实现批量插入,而不需要编写复杂的循环逻辑。

类型

  1. 使用 INSERT INTO ... VALUES 语法
  2. 使用 INSERT INTO ... VALUES 语法
  3. 使用 LOAD DATA INFILE 语法
  4. 使用 LOAD DATA INFILE 语法

应用场景

  1. 数据迁移:将数据从一个数据库迁移到另一个数据库时,批量插入可以显著提高效率。
  2. 数据初始化:在系统初始化时,需要插入大量初始数据。
  3. 日志记录:在生成大量日志记录时,批量插入可以减少对数据库的压力。

示例代码

以下是一个使用 INSERT INTO ... VALUES 语法批量插入数据的示例:

代码语言:txt
复制
-- 创建一个示例表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

-- 批量插入数据
INSERT INTO users (name, email)
VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com'),
('Charlie', 'charlie@example.com');

遇到的问题及解决方法

问题:批量插入数据时速度慢

原因

  1. 网络延迟:数据传输过程中网络延迟较高。
  2. 数据库性能:数据库服务器性能不足,无法处理大量数据插入。
  3. 索引影响:表中有大量索引,插入数据时需要更新索引,导致速度变慢。

解决方法

  1. 优化网络:确保网络连接稳定,减少网络延迟。
  2. 提升数据库性能:增加数据库服务器的资源(如CPU、内存),优化数据库配置。
  3. 临时禁用索引:在批量插入数据前禁用索引,插入完成后再重新启用索引。
代码语言:txt
复制
-- 禁用索引
ALTER TABLE users DISABLE KEYS;

-- 批量插入数据
INSERT INTO users (name, email)
VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com'),
('Charlie', 'charlie@example.com');

-- 重新启用索引
ALTER TABLE users ENABLE KEYS;

参考链接

通过以上方法,可以有效地进行 MySQL 批量添加数据的操作,并解决可能遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql如何批量添加数据_mysql如何批量insert数据

mysql批量insert数据的方法:1、循环插入;2、减少连接资源,拼接一条sql;3、使用存储过程;4、使用【MYSQL LOCAL_INFILE】。...本教程操作环境:windows7系统、mysql8.0.22版,该方法适用于所有品牌电脑。...mysql批量insert数据的方法: 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用,但是每次都要消耗连接数据库的资源。...//querysql 这样写正常插入一万条基本问题不大,除非数据很长,应付普通的批量插入够用了,比如:批量生成卡号,批量生成随机码等等。...,有很多varchar4000 和text字段 耗时 6.524s 方法四:使用MYSQL LOCAL_INFILE 这个我目前正在使用,所以顺便把pdo的代码也复上来,以便大家参考//设置pdo开启MYSQL_ATTR_LOCAL_INFILE

10K50
  • 使用shell脚本批量插入数据到MySQL中

    经常会踫到这样的场景需求:批量向MySQL数据库插入数据,显然手工INSERT成千上万条数据是不现实的,所以自己写了这个shell脚本来处理。...1 具体需求 shell脚本批量插入10万条数据到MySQL中,其中对应表唯一索引是用户uid。因此在程序循环1万次数时,每次都使uid自增1就行了。...2 脚本代码 鉴于数据量比较大,我们的shell脚本需要考虑MySQL执行INSERT的效率,所以采用了对次数取模拼接多个VALUES的值来实现。.../bin/bash # FileName: batchinsertmysqlshell1.sh # Description: 使用shell脚本批量插入数据到MySQL中 # Simple...目前已经把这个脚本放在Github了,地址是https://github.com/vfhky/shell-tools,以后脚本的更新或者更多好用的脚本也都会加入到这个工程中。

    65710

    PHP批量添加数据

    DB_NAME, DB_PORT); $sqli->query( "SET NAMES ".DB_CHAR ); ini_set("max_execution_time", "30"); /** * 批量添加...sqli->query( } /** * 批量添加 方法2 * 使用事务提交,批量插入数据库(每隔10W条提交下) */ $sqli->query( 'start transaction' );...commit transaction'); $sqli->query('begin'); } } $sqli->query('commit transaction'); /** * 批量添加...不到一分钟执行完毕 */ 注意 1:PHP的代码执行时间 max_execution_time = 200000 2:PHP每一次执行请求的内存空间 memory_limit = 1G 3:mysql...接收的最大数据包 max_allowed_packet = 1G 最后总结下,在插入大批量数据时, 第一种方法无疑是最差劲的, 第二种方法在实际应用中就比较广泛, 第三种方法在插入测试数据或者其他低要求时比较合适

    1.6K10

    Crowd 批量添加用户(Postman 数据驱动)

    背景 最近公司大量新员工入职,需要批量创建 Crowd 用户、设置密码、分配应用组等机械性重复工作(主要还是懒~),故把这个加餐任务分配给刚来的测试同学去研究。...一是:让他了解下 Postman 的数据驱动,RESTful api 的相关基础知识;二是:考察下新员工独立完成任务的能力;三是我比较懒~。...Postman 数据驱动 curl 命令方式导入到 Postman,测试添加单个用户 数据驱动批量添加用户 curl 命令方式导入 Postman Postman 支持使用 curl 命令方式导入。...Postman 数据驱动批量添加用户 创建 Collections,添加 api 设置全局变量 password。 ? body 字段参数化。...crowd 添加成功。 ? ?

    1.3K40

    使用Python脚本进行批量造数据

    使用Python脚本进行批量造数据 目录 1、前言 2、脚本批量造数据 1、前言 针对在数据库里进行批量造数据,之前有发过一篇文章 MySQL大批量造数据,是使用存储过程的方法进行批量造数据的。...本篇将采用 Python 脚本的方式进行批量造数据。...2、脚本批量造数据 为了使 Python 可以连上数据库(MySQL),并且可以与数据库交互(增删改查等操作),则需要安装 MySQL 客户端操作库,Python2 中使用 MySQLdb,Python3...命令行安装命令: pip install pymysql 1、首先要脚本需求的定义: 连接数据库,往指定的表里批量造数据,要求 id 为递增,数据造完后,将所有的 id 收集在一起,为后续使用。...(3)最后关闭数据库即可。 3、运行结果: 查看数据库,可以看到新增了10条数据。 4、脚本模板: #!

    1.2K10

    油猴脚本制作微信公众号批量添加全局可转载账号脚本

    于是就有了做一个批量添加公众号转载白名单的想法。 必备神器 我立刻就想到了用油猴脚本(Tampermonkey)来实现。...主要原理就是重写了全局的 fetch 函数,拿到数据后将评论区内容进行一遍过滤,然后再 return 出去,通过这个脚本对油猴有了一个初步的认识。...关键代码 dom 操作 为了方便用户操作,我们需要加一些 dom 元素,比如 批量添加 这个 button,因为之前没在油猴脚本写过 dom ,所以同样先在控制台试了一下。...= "批量添加"; addNode.style = "margin-left:10px"; fatherNode.appendChild(addNode); //添加到原有的「添加」button 后边...公众号文中的连接无法打开,可以打开全文到知乎获得源码链接以及安装地址或者后台回复「批量添加」。

    1.5K20
    领券