当前位置:七道奇文章资讯数据防范MySQL防范
日期:2012-06-02 15:12:00  来源:本站整理

MySQL 大数据量快速插入办法和语句优化分享[MySQL防范]

赞助商链接



  本文“MySQL 大数据量快速插入办法和语句优化分享[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
锁定也将降低多衔接测试的整体时间,固然因为它们等候锁定最大等候时间将上升.比方:

复制代码 代码以下:
Connection 1 does 1000 inserts
Connections 2, 3, and 4 do 1 insert
Connection 5 does 1000 inserts


  假如不利用锁定,2、3和4将在1和5前完成.假如利用锁定,2、3和4将大概不在1或5前完成,但是整体时间应当快大约40%.

  INSERT、UPDATE和DELETE操作在MySQL中是很快的,通过为在一行中多于大约5次持续不断地插入或更新的操作加锁,可以得到更好的整体性能.假如在一行中举行多次插入,可以履行LOCK TABLES,随后当即履行UNLOCK TABLES(大约每1000行)以答应别的的线程拜候表.这也会得到好的性能.

  INSERT装载数据比LOAD DATA INFILE要慢得多,即便是利用上述的战略.

  为了对LOAD DATA INFILE和INSERT在MyISAM表得到更快的速度,通过增添key_buffer_size系统变量来扩大 键高速缓冲区.

  INSERT语法

复制代码 代码以下:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]


  或:

复制代码 代码以下:

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


  或:

复制代码 代码以下:
 
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]


  1、DELAYED 的利用

  利用耽误插入操作DELAYED疗养符利用于INSERT和REPLACE语句.当DELAYED插入操作到达的时刻,服务器把数据行放入一个行列中,并当即给客户端返回一个状况信息,这样客户端便可以在数据表被真正地插入记录之前持续举行操作了.假如读取者从该数据表中读取数据,行列中的数据就会被保持着,直到没有读取者为止.

  接着服务器开始插入耽误数据行(delayed-row)行列中的数据行.在插入操作的同时,服务器还要查抄能否有新的读取恳求到达和等候.假若有,耽误数据行行列就被挂起,答应读取者持续操作.当没有读取者的时刻,服务器再次开始插入耽误的数据行.这个历程一向举行,直到行列空了为止.

  几点要注意事项:

  INSERT DELAYED应当仅用于指定值清单的INSERT语句.服务器忽视用于INSERT DELAYED...SELECT语句的DELAYED.服务器忽视用于INSERT DELAYED...ON DUPLICATE UPDATE语句的DELAYED.

  因为在行被插入前,语句立即返回,所以您不能利用LAST_INSERT_ID()来获得AUTO_INCREMENT值.AUTO_INCREMENT值大概由语句生成.

  关于SELECT语句,DELAYED行不可见,直到这些行确切被插入了为止.

  DELAYED在从属复制服务器中被忽视了,因为DELAYED不会在从属服务器中产生与主服务器不一样的数据.注意,目前在行列中的各行只保存在存储器中,直到它们被插入到表中为止.这意味着,假如您强行中止了mysqld(比方,利用kill -9)大概假如mysqld不测终止,则全部没有被写入磁盘的行城市丧失
  以上是“MySQL 大数据量快速插入办法和语句优化分享[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Windows 搭配 IIS7 PHP MySQL 环境
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • mysql数据库插入速度和读取速度的调整记录
  • MySQL Order By索引优化办法
  • MySQL Order By用法分享
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • MySQL Order By Rand()效率解析
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .