当前位置:嗨网首页>书籍在线阅读

18-优化 INSERT语句

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

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

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

insert into test values(1,2),(1,3),(1,4)…

如果从不同客户插入很多行,可以通过使用 INSERT DELAYED语句得到更高的速度。DELAYED的含义是让INSERT语句马上执行,其实数据都被放在内存的队列中,并没有真正写入磁盘,这比每条语句分别插入要快得多;LOW_PRIORITY 刚好相反,在所有其他用户对表的读写完成后才进行插入。

将索引文件和数据文件分在不同的磁盘上存放(利用建表中的选项)。

如果进行批量插入,可以通过增加bulk_insert_buffer_size变量值的方法来提高速度,但是,这只能对MyISAM表使用。

当从一个文本文件装载一个表时,使用 LOAD DATA INFILE。这通常比使用很多INSERT语句快20倍。