mysql insert into select 效率怎么样(六、My**L数据库之数据插入(insert into))

:暂无数据 2026-04-28 01:00:02 0
回顾我学习mysql insert into select 效率怎么样的经历,六、My**L数据库之数据插入(insert into)可算是一个重要的转折点。正是搞懂了它,一切才变得顺畅起来。

本文目录

六、My**L数据库之数据插入(insert into)

本节介绍数据的插入,复制数据到另一张表的Sql语法,主要语法有: insert into,insert into select,select into from 等用法,下面将一一为大家详细说明:

以下面两张表进行sql脚本说明

insert into有两种语法,分别如下:

语法1:INSERT INTO table_name VALUES (value1,value2,value3,...);   --这种形式无需指定要插入数据的列名,只需提供**入的值即可:

语法2:INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);    --这种形式需指定要插入数据的列名,插入的值需要和列名一一对应:

eg:insert into customer values(’1006’,’14006’,’王欣欣’,’27’,’深圳市’);  --向表customer插入一条数据

eg:insert into customer values(’1007’,’14007’,’孟一凡’,’27’,’’);             --向表customer插入一条数据,最后一个值不填表示对应的值为空,非必填项可以不用插入值

eg:insert into customer (cus_id,cus_no,cus_name,cus_age,cus_adds) values(’1008’,’14008’,’孔凡’,’26’,’广州市’);      --向表customer插入一条数据,插入的值与列名一一对应

详解:insert into select    --表示从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

语法1:INSERT INTO table_name2 SELECT  * FROM table_name1;  --表示将表table_name1中复制所有列的数据插入到已存在的表table_name2中。**入数据的表为table_name2,切记不要记混了。

eg:insert into customer select * from asett   --将表asett中所有列的数据插入到表customer中

语法2:INSERT INTO table_name2 (column_name(s)) SELECT column_name(s) FROM  table_name1;  --指定需要复制的列,只复制制定的列插入到另一个已存在的表table_name2中:

eg:insert into customer (cus_id,cus_no) select ast_id,ast_no from asett   --将表asett中列ast_id和ast_no的数据插入到表customer对应的cus_id,cus_no列中

详解:从一个表复制数据,然后把数据插入到另一个新表中。

语法1:SELECT * INTO newtable  FROM table1;                               --复制所有的列插入到新表中:

eg:select * into customer from asett     --将asett表中数据插入到customer中,**入的 表customer不存在

eg:select * into customer from asett where ast_id = ’1008’    --只复制表asett中ast_id=1008的数据插入到customer中,**入的 表customer不存在

语法2:SELECT column_name(s) INTO newtable  FROM table1;   --只复制指定的列插入到新表中:

eg:select ast_id,ast_no into customer from asett  --将asett表中列ast_id,ast_no数据插入到customer中,**入的 表customer不存在

区别1:insert into customer select * from asett where ast_id=’1009’ --插入一行,要求表customer 必须存在

区别2:select * into customer  from asett  where ast_id=’1009’ --也是插入一行,要求表customer  不存在

区别3:select into from :将查询出来的数据复制到一张新表中保存,表结构与查询结构一致。
区别4:insert into select :为已经存在的表批量添加新数据。

关于mysql大量数据insert into 的时候问什么执行起来慢

使用ETL工具,平时我一般处理的记录不多百万没试过,10W条记录大概不到2分钟,有人用百万的测试记录。 ETL厂商ReikingIBM information server(datastage)informatic基本架构支持运行平台windows/unix/linuxwindows/unix/linuxwindows/unix/linux数据访问模式支持绝大部分支持绝大部分支持绝大部分支持数据抽取方式支持生成文件(落地)再导入;直接导入;消息协议直接导入;导入方式,数据导入支持批量加载(sql loader方式)、insert模式、行删除模式
其中insert模式是插入到临时表,然后更新,需要手工写update语句,配置比较复杂,
行删除模式这种方式不考虑,性能肯定会非常差。
批量加载模式,是对方工程师推荐的测试方案,其性能应该是最快的.以下测试是基于批量加载模式直接导入;数据导入目的库有两种加载方式
normal和bulk,即普通插入和批量加载。
批量加载需要先将索引drop掉,在加载完成后重新创建,但是这种方式在对付
大数据量时很慢,例如下文测试hisdeliver 1个月的数据抽取,286万记录,需要4分47秒,比普通插入
要慢很多。下面的测试结果由informatic的工程师,其基于normal模式实时增量ETL支持递增字段实现,触发器模式,支持Oracle CDCCDC,实现秒级别的增量CDC,实现秒级别的增量,另外付费购买性能单表hisdeliver抽取,记录数124810,耗时比较1分16秒17秒15秒单表hisdeliver抽取,记录数2859999,耗时比较22分12秒6分12秒2分58秒采集sqlserver数据;采集表zygd(记录数:597872)测试报错41秒16秒流程中是否支持并行加载支持支持支持并行加载性能client 730279行5分钟1分14秒2分02秒clientinfo 739278行7分钟2分18秒1分50秒stockholder 108378911分钟2分59秒3分01秒hisdeliver 124810行未加载48秒20秒

mysql视图 会提升查询效率吗

时间的快慢主要由索引决定,在索引都最优化的情况下才与数据量有关。 视图不可能明显加快的查询速度,只是编程方便而已。

如何优化My**L insert性能

1. 一条**L语句插入多条数据。

常用的插入语句如:

INSERTINTO`insert_table` (`datetime`, `uid`, `content`, `type`) VALUES(’0’, ’userid_0’, ’content_0’, 0);

INSERTINTO`insert_table` (`datetime`, `uid`, `content`, `type`) VALUES(’1’, ’userid_1’, ’content_1’, 1);

修改成:

INSERTINTO`insert_table` (`datetime`, `uid`, `content`, `type`) VALUES(’0’, ’userid_0’, ’content_0’, 0), (’1’, ’userid_1’, ’content_1’, 1);

修改后的插入操作能够提高程序的插入效率。这里第二种**L执行效率高的主要原因有两个,一是减少**L语句解析的操作, 只需要解析一次就能进行数据的插入操作,二是**L语句较短,可以减少网络传输的IO。

这里提供一些测试对比数据,分别是进行单条数据的导入与转化成一条**L语句进行导入,分别测试1百、1千、1万条数据记录。

性能测试:这里提供了同时使用上面两种方法进行INSERT效率优化的测试。即多条数据合并为同一个**L,并且在事务中进行插入。

2. 在事务中进行插入处理。把插入修改成:

START TRANSACTION;

INSERTINTO`insert_table` (`datetime`, `uid`, `content`, `type`) VALUES(’0’, ’userid_0’, ’content_0’, 0);

INSERTINTO`insert_table` (`datetime`, `uid`, `content`, `type`) VALUES(’1’, ’userid_1’, ’content_1’, 1);

...

COMMIT;

使用事务可以提高数据的插入效率,这是因为进行一个INSERT操作时,My**L内部会建立一个事务,在事务内进行真正插入处理。通过使用事务可以减少创建事务的消耗,所有插入都在执行后才进行提交操作。

这里也提供了测试对比,分别是不使用事务与使用事务在记录数为1百、1千、1万的情况。

从测试结果可以看到,insert的效率大概有50倍的提高,这个一个很客观的数字。

mysql 只用insert into 每秒能插入多少,152KB每行, 普通linux 2cpu

自己实验一下。Sql语句大大小。和表结构。内容结构都有关系。
php,Mysql 配置也有关系。
自己测试一下。循环插入,求一下平均数。

理解六、My**L数据库之数据插入(insert into),是打开mysql insert into select 效率怎么样大门的第一把钥匙。现在,钥匙在你手中了。
本文编辑:admin

更多文章:


废品回收html5模板(老板让我写一个废旧物资回收企业简介,请问哪里有范本啊)

废品回收html5模板(老板让我写一个废旧物资回收企业简介,请问哪里有范本啊)

大家好,废品回收html5模板相信很多的网友都不是很明白,包括老板让我写一个废旧物资回收企业简介,请问哪里有范本啊也是一样,不过没有关系,接下来就来为大家分享关于废品回收html5模板和老板让我写一个废旧物资回收企业简介,请问哪里有范本啊的

2026年4月28日 21:20

strlwr函数的用法(C语言求一个关于字符串的函数)

strlwr函数的用法(C语言求一个关于字符串的函数)

你是否好奇,为什么人人都在谈strlwr函数的用法?它和C语言求一个关于字符串的函数之间究竟存在着怎样微妙的联系?答案就在下文。

2026年4月28日 21:00

powerful woman(关于Oprah Winfrey)

powerful woman(关于Oprah Winfrey)

powerful woman和关于Oprah Winfrey,看似独立,实则血脉相连。它们是如何相互影响的?本文将为你层层剖析。

2026年4月28日 20:40

settimeout(function)(求教js中这个语句setTimeout(function(){alert(’执行完过了3秒了’)},2000);)

settimeout(function)(求教js中这个语句setTimeout(function(){alert(’执行完过了3秒了’)},2000);)

本篇内容旨在成为您理解settimeout(function)的实用手册,其中求教js中这个语句setTimeout(function(){alert(’执行完过了3秒了’)},2000);将是我们要重点打磨的章节。

2026年4月28日 20:20

美国新冠疫情最新消息今天新增(美国新冠疫情确诊人数有增加吗)

美国新冠疫情最新消息今天新增(美国新冠疫情确诊人数有增加吗)

从我第一次听说美国新冠疫情最新消息今天新增到真正弄懂美国新冠疫情确诊人数有增加吗,也走过一些弯路。下面就把我的学习心得分享给大家,希望能让您的入门之路更顺畅。

2026年4月28日 20:00

asp财务上代表什么意思(ASP在财务中是什么东西的简写中文名称和英文全称是什么)

asp财务上代表什么意思(ASP在财务中是什么东西的简写中文名称和英文全称是什么)

本文旨在解决您关于asp财务上代表什么意思的两大困惑:一是理清基本概念,二是深入解析ASP在财务中是什么东西的简写中文名称和英文全称是什么。内容干练,直奔主题。

2026年4月28日 19:40

structure动词词性的用法(翻译:reboot system now.这句什么意思)

structure动词词性的用法(翻译:reboot system now.这句什么意思)

本篇关于structure动词词性的用法的讲解,将摒弃陈词滥调,直击翻译:reboot system now.这句什么意思这一实战要害,给你可即刻应用的策略。

2026年4月28日 19:20

特斯拉潮州事件最新进展(潮州事件是怎么回事)

特斯拉潮州事件最新进展(潮州事件是怎么回事)

承接之前对特斯拉潮州事件最新进展的讨论,本篇我们将视角下沉,专门来聊聊实操中无法回避的潮州事件是怎么回事问题,让知识落地。

2026年4月28日 19:00

微信文件传输助手会被监管吗?微信显示被网监是什么意思

微信文件传输助手会被监管吗?微信显示被网监是什么意思

你是否好奇,为什么人人都在谈微信监管?它和微信文件传输助手会被监管吗之间究竟存在着怎样微妙的联系?答案就在下文。

2026年4月28日 18:40

php建立站点(怎么才能在一个服务器上建立多个PHP站点)

php建立站点(怎么才能在一个服务器上建立多个PHP站点)

正如一位名家所言:“弄懂怎么才能在一个服务器上建立多个PHP站点,是通往php建立站点殿堂的捷径。” 今天,我们就来走一走这条捷径。

2026年4月28日 18:20

最近更新

powerful woman(关于Oprah Winfrey)
2026-04-28 20:40:02 浏览:0
热门文章

mysql insert into字段顺序问题(mysql insert into的问题)
2026-04-13 16:00:02 浏览:1
split函数 sql(求sql split函数的用法)
2026-03-26 20:40:01 浏览:1
标签列表