찾다

 >  Q&A  >  본문

php 实时价格监控,后台数据库io很大,计算很慢,如何解决?

每小时要根据不同的种类的物品计算总量和总额(就是sql一句话),已经放后台算了。但是计算起来很慢很慢,如何提高这个速度?

高洛峰高洛峰2935일 전2298

모든 응답(7)나는 대답할 것이다

  • 电动小老虎

    电动小老虎2017-12-17 12:38:21

    1 핫 데이터와 콜드 데이터 분리 2 인덱스 추가 3 하위 데이터베이스 및 테이블 4 임시 테이블 생성 테이블 잠금을 최대한 피하세요

    회신하다
    0
  • 欧阳克

    欧阳克2016-11-16 14:01:51

    我从你的问题里面什么信息都无法得知。

    你说慢,那是sql慢还是打开网页慢还是什么?

    你的价格统计是一个cron还是什么?

    sql慢就查看执行计划,加索引,调整where条件的位置,分库分表。

    网页显示慢那就显示分页。


    회신하다
    0
  • 三叔

    三叔2016-11-16 14:01:30

    计算起来慢?我理解是 CPU 密集型计算 而不是 读取数据 IO 慢,从 PHP 的角度的话,可以考虑

    升级到 PHP 7

    增加机器配置,或者使用多进程,多线程计算

    使用 C 扩展 做计算这块

    或者,换个语言,专门做 计算这块 ,golang ?


    회신하다
    0
  • 欧阳克

    欧阳克2016-11-16 14:01:17

    通常我都是把这种统计放到更改的时候去执行。

    也就是一张统计表,里面记录时间(小时),分类,总量,总额。

    有量增加的时候,先查询当前时间(按小时记)是否有该分类,没有就插入一条。有就增加更新量和总额。


    회신하다
    0
  • 三叔

    三叔2016-11-16 14:00:56

    IO大试试缓存?

    회신하다
    0
  • 欧阳克

    欧阳克2016-11-16 14:00:38

    计算问题啊 .. 提高配置啊 .. 多加机器啊 .. 等等

    회신하다
    0
  • 三叔

    三叔2016-11-16 14:00:24

    第一步:用redis吧,做持久存储。第二步:再写一个shell,定时把redis里的数据写入数据库

    회신하다
    0
  • 취소회신하다