45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > 数据库 >

优化Mysql插入数据性能的方法

电脑软硬件应用网 45IT.COM 时间:2010-02-22 12:48 作者:佚名

本文讲一下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语句。

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
你可能感兴趣的文章
推荐知识