php每秒的最大负载量,php – 每秒大量插入导致大量CPU负载

我有一个PHP脚本,在每次运行中,将一个新行插入一个Mysql数据库(具有相对少量的数据..)

我每秒有超过20个请求,这导致我的CPU尖叫寻求帮助..

我正在使用带有MyISAM引擎的sql INSERT DELAYED方法(虽然我只是注意到INSERT DELAYED不能与MyISAM一起使用).

我主要担心的是我的CPU负载,我开始寻找使用更多CPU友好解决方案来存储这些数据的方法.

我的第一个想法是将这些数据写入每小时的日志文件,每小时一次从日志中检索数据并立即将其插入数据库.

也许更好的想法是使用NoSQL DB而不是日志文件然后每小时一次将数据从NoSQL插入到Mysql中.

我没有测试任何这些想法,所以我真的不知道这是否会设法减少我的CPU负载.我想问一下是否有人可以帮我找到对我的CPU影响最小的正确解决方案.

解决方法:

我最近有一个非常类似的问题,我的解决方案是简单地批处理请求.由于减少了mysql连接的开销,并且重建索引的数量大大减少,因此加速了大约50次.将它们存储到文件中,然后立即执行一个更大的(100-300个单独插入)语句可能是个好主意.为了加快速度,可以在插入的持续时间内关闭索引

ALTER TABLE tablename DISABLE KEYS

insert statement

ALTER TABLE tablename ENABLE KEYS

执行批量插入会减少运行php脚本的实例数量,它会减少当前打开的mysql句柄数量(大幅改进),并且会减少索引量.

标签:php,mysql,nosql,performance

来源: https://codeday.me/bug/20190609/1208366.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值