欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【5招优化MySQL插入方法】,下面是详细的分享!
5招优化MySQL插入方法
以下是涉及到插入表格的查询的5种改进方法:
1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。
2)使用带有多个VALUES列表的INSERT语句一次插入几行这将比使用一个单行插入语句快几倍。调整bulk_insert_buffer_size变量也能提高(向包含行的表格中)插入的速度。
3)可以对myisam表并行插入Concurrent_insert系统变量可以被设置用于修改concurrent-insert处理。该变量默认设置为1。如果concurrent_insert被设置为0,并行插入就被禁用。如果该变量被设置为2,在表的末端可以并行插入,即便该表的某些行已经被删除。
4)使用插入延迟
如果你的客户不能或无需等待插入完成的时候,这招很有用。当你使用MySQL存储,并定期运行需要很长时间才能完成的SELECT和UPDATE语句的时候,你会发现这种情况很常见。当客户使用插入延迟,服务器立刻返回,如果表没有被其他线程调用,则行会列队等待被插入。使用插入延迟的另一个好处就是从多个客户插入的情况会被绑定并记录在同一个block中。这将比处理多个独立的插入要快得多。
5)插入之前将表锁定(只针对非事务处理型的表)
这将提高数据库性能,因为索引缓冲区只是在所有的插入语句完成后才对磁盘进行一次刷新。通常情况下,有多少个插入语句就会有多少次索引缓冲区刷新。如果你可以用一个插入语句实现所有行的插入,则无需使用显式锁定语句。
要想更快地对事务型表插入,你应该使用START TRANSACTION和COMMIT语句,而不是LOCK TABLES语句。
以上所分享的是关于5招优化MySQL插入方法,下面是编辑为你推荐的有价值的用户互动:
相关问题:请问使用insert插入大量数据怎样优化A(也就是速度...
答:建议分批次处理 处理数据如: 300行 +go 生成如下脚本导入,具体要看楼主现在用的插入方法 insert into 表 select 1 ... insert into 表 select 300 go insert into 表select 301 .... >>详细
相关问题:如何优化MySQL insert性能
答:一条SQL语句插入多条数据 原有插入语句:INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'us... >>详细
相关问题:如何优化MySQL insert性能
答:这个问题可深可浅,MySQL的写效率一直被人诟玻 简单的来说你可以用批量插入, insert into table (key1,key2) values(1,2),(1,2)......... 当然你可能已经用这种方法了,但结果还是慢,那就先查看你用的是MyISAM还是Innodb。 如果你使用的是inno... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
