批量向mysql数据库插入数据,如何批量向mysql插入数据
本文列表:
- 1.mysql批量数据插入
- 2、如何将大批量数据导入mysql数据库?
- 3、如何批量向mysql数据库插入数据
- 4、批量插入MYSQL到数据库,实现命令性能分析
- 5、如何批量向mysql数据库插入数据。如果A表有字段ID姓名密码email,如何插入大量成员?
- 6.如何批量导入csv文件到mysql数据库
mysql批量数据插入
是否可以使用UPDATE而不是INSERT INTO? 3000个数据导入看起来并不算多
如果要这么说的话,确实很难,因为数据类型不一样,又不能使用数组。似乎没有任何技巧。
但是你可以直接使用EXCEL中的CONCATENATE()函数将数据转换为SQL输入语句
然后将这个输入语句脚本放在像Iinsert.sql这样的文件中
然后使用类似下面的代码将此脚本导入MYSQL中执行
!$db-select_db('databasename')exit($db-error()); //选择当前数据库
if(!file_exists(./insert.sql "))exit("加载\"insert.sql\"失败!");
$import_sql=file_get_contents("pms.sql" ,dirname(__FILE__)); //打开SQL文件并读取
$explode =explode(";",$import_sql);
$cnt = count($explode);
for ($i =0;$i$cnt ;$i++){
!$ db-query($explode[$i])exit("导入数据表失败!");
}
echo "表数据已创建... brbr\n";

如何向mysql数据库添加数据导入大批量数据?
在导入时禁用索引生成,应该会更快。
导入期间不要创建索引。
8G数据应该不会这么慢。
阅读部分sql语句文件,看一下。创建表语句中应该有一个索引部分。删除它!
仅创建表格并输入数据。两件事情。
另请参阅数据库是否有外键?
尝试在数据插入过程中删除外键分配。
数据插入完成后添加索引和外键,应该可以提高读写性能。
捕获部分数据,例如 100 Mb。
插入并尝试,您可以提前预计总时间。
还有,你确实需要买一台更好的电脑或者租一台,导入完数据后直接复制msyql库文件在自己的电脑上运行就可以了。
emm...
然后添加一些信息。首先你需要了解原始sql文件中的内容。 ,执行了哪些类型的操作?
您可能需要编写一些小工具(例如 c 或其他语言)来零碎地读取和处理文件。
8G...
嗯,还好。
现在内存足够大了,不然直接用软件打不开。
如果你只有8G就可以直接用软件打开.
停止索引实际上可以加快数据插入速度。
推荐尝试!
如何批量插入数据到mysql数据库
定期插入语句,一条语句只能向数据库中插入一条数据:
insert into people
(id_p, surname, first name, city)
values(204,'haha', ' deng', 'shenzhen');
(如上只插入了一条记录)
如何一次插入多条记录?
使用示例:
插入人员
(id_p, Lastname , Firstname, City )
值
(200,'haha' , 'deng' , 'sh (201,' haha2' , 'deng' , 'GD'),
(202,'haha3' , 'deng' , '北京');
这样就可以批量插入数据了,按照这个语法,就可以插入数据了批量插入。
启动成功,截图:
据说开发程序时,一次插入多条数据比一条一条插入数据效率高很多
所以开发程序时就用这种批量插入,也挺好的
该命令在 MySQL 5 和 postgreSQL 9.3 中执行。
批量插入MYSQL数据库进行命令性能分析
假设我们的表结构如下
代码如下
CREATE
TABLE
example( id‼‼T
NULL,
名称
VARCHAR(
50
)
NOT
NULL,
值
VARCHAR(❙‼)‼️‼️❙‼️‼️‼️other_value
VARCHAR( ? (示例标识符,
名称,
值,
其他值)
值
100,‼(100,'值
1',
'其他
1');
mysql允许我们批量向sql命令中插入数据,如下:
代码如下 INSERT
INTO
例如 Le (example_id,
名称,
值,
OTHER_VALUE)❙(Na,'00)
1',
'值
1',
'其他
1'),
(101,
'姓名
2',e'u,
'其他
2'),
(102,
'姓名
3',
'数值
3'‼️'),
(103 ,
'姓名
4',
'数值
4',
'其他
4');4');列顺序和表列顺序一致的话,也可以省略列名的定义。下面的sql
代码如下
INSERT
INTO
示例
VALUES
(100,
'Name
1',
'Value
1',
'
'其他
'名称
2',
'值
2',
'其他
2'),
(102,
'名称
3',
'值
3',
'其他
3'),
(103,'' 4 ',
'值
4',
'其他
4');
上面的好像没有问题。现在我将使用一些技巧来优化 SQL 语句。测试时,目标是向空数据表中插入 200 万条数据。
array('value'='50');
set_time_limit(0);
echo
date("H :是”);
for($i=0; $i2000000;$i++){
$connect_mysql-insert($params);
};
echo
date("H:i:s" );
最后查看时间为:23:25:05
01:32:05
也就是说花了2个多小时!
第二种方式:使用发送事务批量插入数据库(每10W条发送)并最终显示消费时间为:22:56:13
23:04:00
,总共8分13秒
,代码如下:
代码如下
echo
date("H: i:s");
$connect_mysql-query( 'BEGIN');
$params
=
array('value'='50');
for($i= 0;$i2000000;$i++){
$connect_my -insert($params) ;
if($i%100000==0){
$connect_mysql-query('COMMIT');
$connect_mysql-query('BEGIN');
}
}
$connect_mysql -query('COMMIT');
echo
date("H:i:s");
第三种方式:使用优化的SQL语句:组合SQL语句,使用
insert
into
table
()
values
(),(), , () 和然后一次性将它们全部插入。如果字符串太长,
需要配置MYSQL,在mysql命令行运行
:set
全局
max_allowed_packet
=
2*1024*1024*10;消费时间为:11:24:06
11:25:06;
插入200万条测试数据只需要1分钟!代码如下:
代码如下
$sql=
"insert
into
twenty_million
(value)
$i=0 ;$i2000000; $i++){
$sql.="('50'),";
};
$sql
=
substr($sql, 0,strlen($sql)- 1);
$connect_mysql-query($sql);
综上所述,在插入大量数据时,第一种方法无疑是最差的,而第二种方法实际上是最差的。应用广泛,第三种方法比较适合插入测试数据或者其他要求不高的情况,而且速度确实很快。 ?提示输入适当的密码
2。以下命令可能对您有用。当你想更改数据库指令
mysqluse
database_name
然后使用以下命令
mysqlsource
d:datafilename.sql
当然你需要知道文件的路径并正确使用
进入mysql
安装的bin目录的子目录。
输入import sql执行命令。
例如:
你的mysql
安装在
d上:mysql
步骤如下:
开始❙‼️运行- 输入CMD
D:Cd
mysqlbin
mysql
-u-u-u
-root
-test-p123456 ‼‼加载更多
如何将导入csv文件批量导入到mySQL数据库中
通过命令行导入(需要用逗号分隔列,如果字段包含,则将其包裹在“)
将输入数据集 'D:/mysql-5.7.29-winx64/files/ ratings_5.csv' 加载到表评级字段终止 ',' 可选关闭 '"' 终止 '"' 行终止 '\r\n' ;
陷阱一:文件路径如果用\分隔,会报错。可以使用 / (应该也可以使用 \\)
陷阱 2:加载数据命令报错
ERROR 1290 (HY000):MySQL 服务器正在使用 --secure-file -priv 运行所以它不能执行这个命令
添加到my.ini(空字符串表示允许从任何目录导入)
[mysqld]
secure-file -priv=''
然后在windows中重新启动mysql service
陷阱三:csv文件第一行是列名,例如userId
如果你的csv文件不大,直接使用。打开记事本后,删除第一行++
但是在我们的例子中,notepad++无法打开千万级文件。这种情况,可以考虑两种方式
1。将csv文件传输到Linux服务器并删除第一行
由于我不知道如何在Win 10中执行此操作,所以我只能通过Linux传输
sed -i '1d'评级来完成。 csv
检查是否成功,可以打印第一行来观察
cat评估.csv |头 -n 1
2。使用工具将大 csv 拆分为多个可以在记事本中打开的较小文件。把第一个文件第一行删除,逐个导入
工具:splitcsv
亲测500万条数据的csv文件可以用notepad++打开(只能同时打开3个)
这个工具有一个小缺点:最后一行 ratings_0.csv 和 ratings_1.csv 的第一行重复 是的,手动删除它
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
