Speed of INSERT Statements(Mysql数据库优化方法——翻译自www.mysql.com)

插入一条记录所花的时间取决于下面几个因素,括号里的数字代表了该项所占的比重:

•连接数据库服务器:(3)

•将语句发给服务器:(2)

•解释语句:(1)

•插入记录:(1 x 记录条数)

•插入索引:(1 x 索引数目)

•关闭数据库连接:(1)

在此,我们没有考虑打开表初始化的时候的负载。查询每执行一次,这种负载出现一次。

加入索引的算法是B-tree算法的话,表的长度以LogN的比率降低插入索引的速度。

综上所述,我们可以使用以下的方法增加插入的速度:

1、如果我们正在同一时间,从同一个客户端向表中插入多行数据,我们可以在Insert语句中使用多个values列表,一次插入多行。这样会比一句一句地插入数据效率高。如果是往非空表里插入数据,可以调整变量 bulk_insert_buffer_size的值,以使效率更高。

2、如果是多个客户端插入多条数据,我们可以使用insert delay语句。

3、如果使用MyISAM的表在操作的过程中没有删除操作,可以使用并发插入来调高语句执行的效率。

4、当从一个文本文件中加载表时,使用load data infile语句。用这个语句通常比用insert语句插入的效率高20倍。

(待续……)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值