[摘要]+----------------------------+-------+看到这个延迟插入的功能,想起项目里一个有点类似的功能,启发了自己的思路。使用方法为:insert delyed into ...
+----------------------------+-------+
看到这个延迟插入的功能,想起项目里一个有点类似的功能,启发了自己的思路。
使用方法为:insert delyed into table values(*);
delyed_insert_limit
默认值为100.当向MySQL表延迟插入100行记录后,检查该表是否有select语句在等待执行,如果有,暂停insert语句执行。
delayed_insert_timeout
在超时范围内,如果delayed 队列里没有数据,延迟插入线程将关掉。
delayed_queue_size
延迟插入的队列长度,超出将阻塞,直到有足够的空间。
max_delayed_threads
延迟插入的线程数。
MyISAM表的批量延迟插入
类似 insert into table values(1),values(2),values(n)。MyISAM将进行批量插入。先将插入的数据放入缓存。当缓存被写满或者提交完毕了,MySQL一次性的将缓存中的写入硬盘。通过批量插入可以大大缩减MySQL客户机与服务机的连接语法分析等消耗,使得效率比分开执行单个insert语句快的多。
mysql> select @@global.bulk_insert_buffer_size/(1024*1024);
+----------------------------------------------+
关键词:MySQL优化之缓存优化详细说明(二)