作家
登录

MySQL该如何进行大数据量快速插入方法和语句优化?

作者: 来源: 2017-11-23 09:09:42 阅读 我要评论

INSERT 语法

  1. INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE
  2. [INTO] tbl_name [(col_name,...)] 
  3. VALUES ({expr | DEFAULT},...),(...),... 
  4. ON DUPLICATE KEY UPDATE col_name=expr, ... ] 

或:

  1. INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE
  2. [INTO] tbl_name 
  3. SET col_name={expr | DEFAULT}, ... 
  4. ON DUPLICATE KEY UPDATE col_name=expr, ... ] 

或:

  1. INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE
  2. [INTO] tbl_name [(col_name,...)] 
  3. SELECT ... 
  4. ON DUPLICATE KEY UPDATE col_name=expr, ... ] 

一、DELAYED 的应用

使悠揭捉?迟插入操作 DELAYED 调节符应用于 INSERT 和 WordStr 语句。当 DELAYED 插入操作达到的时刻,办事器把数据行放入一个队列中,并急速给客户端返回一个状况信息,如许客户端就可以在数据表被真正地插入记录之前持续进行操作了。如不雅攫取者大年夜该数据表中攫取数据,队列中的数据就会被保持着,直到没有攫取者为止。

接着办事器开端插入延迟数据行(delayed-row)队列中的数据行。在插入操作的同时,办事器还要检查是否有新的攫取请求达到和等待。如不雅有,延迟数据行队列就被挂起,许可攫取者持续操作。当没有攫取者的时刻,办事器再次开端插入延迟的数据行。这个过程一向进行,直到队列空了为止。

几点要留意事项

因为在行被插入前,语句急速返回,所以您不克不及应用 LAST_INSERT_ID() 来获取 AUTO_INCREMENT 值。AUTO_INCREMENT 值可能由语句生成。

DELAYED 在从属复制办事器中被忽视了,因为 DELAYED 不会在从属办事器中产生与主办事器不一样的数据。留意,今朝在队列中的各行只保存在存储器中,直到它们被插入到表中为止。这意味着,如不雅您强行中断了 mysqld(例如,应用 kill -9) 或者如不雅 mysqld 不测停止,则所有没有被写入磁盘的行都邑损掉。

IGNORE 是 MySQL 相对于标准 SQL 的扩大。如不雅在新表中有反复关键字,或者当 STRICT 模式启动后出现警告,则应用 IGNORE 控制 ALTER TABLE 的运行。

如不雅没有指定 IGNORE,当反复关键字缺点产生时,复制操作被放弃,返回前一步调。

如不雅指定了 IGNORE,则对于有反复关键字的行,只应用第一行,其它有冲突的行被删除。并且,对缺点值进行修改,使之尽量接近精确值。insert ignore into tb(…) value(…) 如许不消校验是否存在了,有则忽视,无则添加。

如不雅您指定了>

  • mysql> INSERT INTO table (a,b,c) VALUES (1,2,3) 
  • -> ON DUPLICATE KEY UPDATE cc=c+1; 
  • mysql> UPDATE table SET cc=c+1 WHERE a=1; 
  • 如不雅行作为新记录被插入,则受影响行的值为 1;如不雅原有的记录被更新,则受影响行的值为 2。

    注释:如不雅列 b 也是独一列,则 INSERT 与此 UPDATE 语句相当:

    1. mysql> UPDATE table

        推荐阅读

        大数据分析42万字的歌词,为了搞清楚民谣歌手们在唱些什么

      Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 听了这么多年平易近谣,我有一种感到,就是很多歌都似曾了解,然则细心一想,又哪一首都想不起来,为了搞>>>详细阅读


      本文标题:MySQL该如何进行大数据量快速插入方法和语句优化?

      地址:http://www.17bianji.com/lsqh/39158.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)