MySQL数据库SQL语句之优化INSERT语句

 当进行数据INSERT 的时候,可以考虑采用以下几种优化方式

  • 如果同时从同一客户插入很多行,应尽量使用多个值表的INSERT 语句,这种方式将大大缩减客户端与数据库之间的连接、关闭等消耗,使得效率比分开执行的单个INSERT 语句快
  • (在大部分情况下,使用多个值表的INSERT 语句能比单个INSERT 语句快上好几倍。)

下面是一次插入多值的一个例子:

INSERT INTO table_name values(1,2),(1,3),(1,4)...
  • 如果从不同的客户端插入很多行,可以通过使用 INSERT DELAYED 语句得到更高的速度。
  • DELAYED的含义是让INSERT 语句马上执行,其实数据都被放在内存的队列中,并没有真正写入磁盘,这比每条语句分别插入要快的多;
  • LOW_PRIORITY刚好相反,在所有其他用户对表的读写完成后才进行插入。
  • 将索引文件和数据文件分在不同的磁盘上存放(利用建表中的选项)
  • 如果进行批量插入,可以通过增加bulk_insert_buffer_size 变量值的方法来提高速度,但是,这只能对MyISAM表使用
  • 当从一个文本文件装载一个表时,使用LOAD DATA INFILE. 这通常比使用很多的INSERT 语句快20 倍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值