MYSQL批量插入数据库实现语句性能分析
MYSQL批量插入数据库实现语句性能分析
假定我们的表结构如下
代码如下 | |
CREATE TABLE example ( |
通常情况下单条插入的sql语句我们会这么写:
代码如下 | |
INSERT INTO example |
mysql允许我们在一条sql语句中批量插入数据,如下sql语句:
代码如下 | |
INSERT INTO example |
如果我们插入列的顺序和表中列的顺序一致的话,还可以省去列名的定义,如下sql
代码如下 | |
INSERT INTO example |
上面看上去没什么问题,下面我来使用sql语句优化的小技巧,下面会分别进行测试,目标是插入一个空的数据表200W条数据
第一种方法:使用insert into 插入,代码如下:
代码如下 | |
$params = array('value'=>'50'); |
最后显示为: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'); |
第三种方法:使用优化SQL语句:将SQL语句进行拼接,使用 insert into table () values (),(),(),()然后再一次性插入,如果字符串太长,
则需要配置下MYSQL,在mysql 命令行中运行 :set global max_allowed_packet = 2*1024*1024*10;消耗时间为:11:24:06 11:25:06;
插入200W条测试数据仅仅用了1分钟!代码如下:
代码如下 | |
$sql= "insert into twenty_million (value) values"; |
最后总结下,在插入大批量数据时,第一种方法无疑是最差劲的,而第二种方法在实际应用中就比较广泛,第三种方法在插入测试数据或者其他低要求时比较合适,速度确实快。
MYSQL批量插入数据库实现语句性能分析相关推荐
- sql批量插入数据mysql_MYSQL批量插入数据库实现语句性能分析
假定我们的表结构如下: CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( 50 ) NOT NULL, value VARCH ...
- MySql 批量插入数据库Java代码实现思路
说明: mysql执行inset语句并未明确说明限制多少条语句,但是sql语句在超过一定的大小后,执行就会报错,百度得知mysql 5.7 最大语句执行最大不能超过4M,当然,在mysql执行批量插入 ...
- Oracle数据库:实现批量插入的sql语句
目录 问题现象: 问题分析: 注意:这里一定要注意分号(;)的使用: 否则容易出现报错,如: 解决方法: 问题现象: 今天想使用Oracle数据库进行批量插入的操作,发现和想象中的不太一样,报错如下: ...
- mysql bytessent_如何对DSQLSERVER、MySQL、Orache语句性能分析
SQLSERVER语句性能分析 SQL SERVER通过设置STATISTICS查看执行SQL时的系统情况. SET STATISTICS PROFILE ON:显示分析.编译和执行查询所需的时间(以 ...
- oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...
本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...
- mysql批量插入跟更新_Mysql批量插入和更新的性能-问答-阿里云开发者社区-阿里云...
利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...
- Mysql批量插入更新性能优化
Mysql批量插入更新性能优化 对于数据量较大的插入和更新,因io/cpu等性能瓶颈,会产生大量的时间消耗,目前主流的优化主要包括预编译.单条sql插入多条数据.事务插入等,下面详细介绍一下: 单条插 ...
- mysql批量插入跟更新_Mysql批量插入和更新的性能
利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...
- mysql不支持addbatch_【MySql】Java 批量插入数据库addBatch
//addBatch批量插入数据库 public static void insertCommentToMySql(Set commentList) { Iterator it = commentLi ...
最新文章
- 7-22关于agriculture-mvc的理解与完善,通过关键字模糊查询
- [译]SSAS下玩转PowerShell(三)
- SAP自定义查询工具SQVI
- python is not allowed to run_【无法解决】PySpider的部署运行而非调试界面上RUN运行
- python学习笔记(十五)标准库StringIO和BytesIO
- vue-cli项目布署问题解决:空白页、静态资源文件404错误、refrenceError:promise未定义(部分浏览器不支持ES6语法)
- mysql数据库druid密码加密_Druid数据库密码加密
- 配置监控中心-及管理平台
- Xshell利用密钥远程登录Linux
- bug篇——Windows启动redis报错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error...
- python中字符编码:coding utf-8, unicde, defaultencoding, UnicodeDecodeError, UnicodeEncodeError
- Kafka实战之整合Flume和Kafka完成实时数据采集
- Java基本数据类型取值范围
- SharePoint 网站登录不上,3次输入用户名/密码白页
- Linux修改/设置服务器ip地址
- 路由2台,二层交换机4台,三层1台,实现网络互联
- Java编程笔记9:容器(下)
- Excel中如何进行快速单位换算
- 【统计学】Python计算并绘制样本数据的经验分布函数
- 作家助手macos_我们正在寻找一般兴趣作家