mysql insert 索引_MySQL优化INSERT速度由于索引而减慢

小编典典

如果要快速插入,首先需要的是合适的硬件。假定有足够的RAM,一个SSD而不是机械驱动器以及相当强大的CPU。

由于您使用InnoDB,因此默认设置是针对慢速和老式计算机设计的,因此您需要对其进行优化。

在那之后,您需要了解一件事-那就是数据库在内部如何执行其工作,硬盘如何工作等等。我将在以下描述中简化该机制:

MySQL是一个事务,它等待硬盘驱动器确认它已写入数据。这就是为什么机械驱动器上的事务处理很慢的原因,它们每秒可以执行200-400次输入输出操作。转换后,这意味着您可以在机械驱动器上使用InnoDB每秒获得200ish插入查询。自然,

这是简化的解释 ,只是为了概述正在发生的事情, 而不是事务背后的完整机制 。

由于查询(尤其是与表大小相对应的查询)的字节数相对较小-您实际上在单个查询上浪费了宝贵的IOPS。

如果在单个事务中包装多个查询(100或200或更多,没有确切的数字,则必须测试),然后提交它-您将立即每秒获得更多写入。

Percona家伙正在相对便宜的硬件上实现每秒15k插入。即使每秒插入5k也不错。像您这样的表格很小,我已经在类似的表格上进行了测试(多了3列),并且使用带有240GB

SSD的16GB内存计算机(1个驱动器,没有RAID,用于测试目的)。

TL;

DR:-按照上面的链接,配置服务器,获取SSD,在1次交易中包装多次插入并获利。而且不要关闭索引然后再打开,这并不总是适用的,因为在某些时候,您将花费处理和IO时间来构建它们。

2020-05-17

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值