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

mysql如何批量添加数据_mysql如何批量insert数据mysql批量insert数据的方法:1、循环插入;2、减少连接资源,拼接一条sql;3、使用存储过程;4、使用【MYSQLLOCAL_INFILE】。本教程操作环境:windows7系统、mysql8.0.22版,该方法适用于所有品牌电脑。mysql批量insert数据的方法:方法一:循环插入这个也是最普通的方式,如果数据量不是很大,可以使用,但是每次都要消耗连接数据库的资源。大致思维如下(我…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

mysql批量insert数据的方法:1、循环插入;2、减少连接资源,拼接一条sql;3、使用存储过程;4、使用【MYSQL LOCAL_INFILE】。

2020121416191447005.jpg

本教程操作环境:windows7系统、mysql8.0.22版,该方法适用于所有品牌电脑。

mysql批量insert数据的方法:

方法一:循环插入

这个也是最普通的方式,如果数据量不是很大,可以使用,但是每次都要消耗连接数据库的资源。

大致思维如下

(我这里写伪代码,具体编写可以结合自己的业务逻辑或者框架语法编写)for($i=1;$i<=100;$i++){

$sql = ‘insert……………’;

//querysql

}

foreach($arr as $key => $value){

$sql = ‘insert……………’;

//querysql

}

while($i <= 100){

$sql = ‘insert……………’;

//querysql

$i++

}

因为太过普通同时也没什么难度同时也不是我今天主要写的所以这里我不多说

方法二:减少连接资源,拼接一条sql

伪代码如下//这里假设arr的key和数据库字段同步,其实大多数框架中在php操作数据库的时候都是这么设计的

$arr_keys = array_keys($arr);

$sql = ‘INSERT INTO tablename (‘ . implode(‘,’ ,$arr_keys) . ‘) values’;

$arr_values = array_values($arr);

$sql .= ” (‘” . implode(“‘,'” ,$arr_values) . “‘),”;

$sql = substr($sql ,0 ,-1);

//拼接之后大概就是 INSERT INTO tablename (‘username’,’password’) values

(‘xxx’,’xxx’),(‘xxx’,’xxx’),(‘xxx’,’xxx’),(‘xxx’,’xxx’),(‘xxx’,’xxx’),(‘xxx’,’xxx’)

…….

//querysql

这样写正常插入一万条基本问题不大,除非数据很长,应付普通的批量插入够用了,比如:批量生成卡号,批量生成随机码等等。

方法三:使用存储过程

这个我手里正好再用这个就把sql付出来,具体业务逻辑大家自己组合一下就可以。delimiter $$$

create procedure zqtest()

begin

declare i int default 0;

set i=0;

start transaction;

while i<80000 do

//your insert sql

set i=i+1;

end while;

commit;

end

$$$

delimiter;

call zqtest();

这个也只是个测试代码,具体参数大家自行定义

我这里是一次插入8万条,虽然不多但是,每一条数据量都很大,有很多varchar4000 和text字段

耗时 6.524s

方法四:使用MYSQL LOCAL_INFILE

这个我目前正在使用,所以顺便把pdo的代码也复上来,以便大家参考//设置pdo开启MYSQL_ATTR_LOCAL_INFILE

/*hs96.cn@gmail.com

public function pdo_local_info ()

{

global $system_dbserver;

$dbname = ‘hs96.cn@gmail.com’;

$ip = ‘hs96.cn@gmail.com’;

$user = ‘hs96.cn@gmail.com’;

$pwd = ‘hs96.cn@gmail.com’;

$dsn = ‘mysql:dbname=’ . $dbname . ‘;host=’ . $ip . ‘;port=3306’;

$options = [PDO::MYSQL_ATTR_LOCAL_INFILE => true];

$db = new PDO($dsn ,$user ,$pwd ,$options);

return $db;

}

//伪代码如下

public function test(){

$arr_keys = array_keys($arr);

$root_dir = $_SERVER[“DOCUMENT_ROOT”] . ‘/’;

$my_file = $root_dir . “hs96.cn@gmail.com/sql_cache/” . $order[‘OrderNo’] . ‘.sql’;

$fhandler = fopen($my_file,’a+’);

if ($fhandler) {

$sql = implode(“\t” ,$arr);

$i = 1;

while ($i <= 80000)

{

$i++;

fwrite($fhandler ,$sql . “\r\n”);

}

$sql = “LOAD DATA local INFILE ‘” . $myFile . “‘ INTO TABLE “;

$sql .= “tablename (” . implode(‘,’ ,$arr_keys) . “)”;

$pdo = $this->pdo_local_info ();

$res = $pdo->exec($sql);

if (!$res) {

//TODO 插入失败

}

@unlink($my_file);

}

}更多相关免费学习推荐:mysql教程(视频)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203627.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • chrom浏览器flash_flash插件

    chrom浏览器flash_flash插件Flash插件概述Flash插件一款安装于浏览器插件,即AdobeFlashPlayerPlugin,使浏览器得以播放swf文件。通过Flash插件最新版下载可以提升浏览器、视频播放软件对于动画文件的最大兼容性。AdobeFlashPlayer是一种广泛使用、专有的多媒体播放器,AdobeFlashPlayer最初设计目的为播放2维向量动量,但至此之后成为适合开发创造丰富型互联网应用…

    2022年5月31日
    81
  • 查看Mysql锁情况

    查看Mysql锁情况#当前运行的所有事务select*frominformation_schema.innodb_trx;#当前出现的锁select*frominformation_schema.innodb_locks;#锁等待的对应关系select*frominformation_schema.innodb_lock_waits#查看下autocommit的值se…

    2022年6月1日
    34
  • sql中decode的用法_sql求和函数

    sql中decode的用法_sql求和函数decode()函数的语法:其中:columnname为要选择的table中所定义的column;缺省值可以是你要选择的columnname本身,也可以是你想定义的其他值,比如Other等;

    2022年8月1日
    15
  • 多目标优化算法(一)NSGA-Ⅱ(NSGA2)[通俗易懂]

    多目标优化算法(一)NSGA-Ⅱ0.前言这个算法是本人接触科研学习实现的第一个算法,因此想在这里和大家分享一下心得。1.算法简介NSGA-Ⅱ算法,即带有精英保留策略的快速非支配多目标优化算法,是一种基于Pareto最优解的多目标优化算法。1.1Pareto支配关系以及Pareto等级Pareto支配关系:对于最小化多目标优化问题,对于n个目标分量fi(x),i=1…nf_i(…

    2022年4月3日
    801
  • webJars使用

    webJars使用webJars 使用官网地址 https www webjars org 以 maven 项目为例选择对应的版本后 复制地址信息在 pom 中引用 jquery 引用格式 scriptth src webjars jquery 1 11 3 jquery js 引用格式必须是 webjars scriptth src

    2025年8月19日
    1
  • 小技巧两个感叹号(两个!)连用

    小技巧两个感叹号(两个!)连用

    2021年11月8日
    287

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号