活动小鸡上 SQL 应该耗时多少? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yankebupt
V2EX    问与答

活动小鸡上 SQL 应该耗时多少?

  •  
      yankebupt 2022 年 5 月 28 日 1819 次点击
    这是一个创建于 1388 天前的主题,其中的信息可能已经有所发展或是发生改变。
    腾讯云的活动小鸡,性能估计很一般很一般
    php 和 sql 都在一机
    已开 opcache(感觉不是,没什么提升)

    返回大概 10000 多条数据(温湿度传感器),php 处理成 json 给网页
    查询就一个全表返回(已做插入 db trigger 数据分类),没 where 条件,就一个 join 做 id->名称转换(不知是不是瓶颈,是的话丢给 insert trigger)

    php 等待约 100ms ,感觉已经爆炸……六张图 10 秒一刷的话估计会把机器卡成鬼

    不知道什么地方的问题。

    有人讲讲像我这样几千条数据的 SQL 的平均返回时间么,我也有个底……
    第 1 条附言    2022 年 5 月 28 日
    试了下
    把表(Structure and data)dump 下来本机开了个 mysql select *了一下...0.011s...只要 11ms...

    是小鸡系统盘 io 太烂的原因么?还是别的什么原因
    本机 nvme......
    第 2 条附言    2022 年 5 月 28 日
    感谢回复……
    怕是 IO 问题,把临时表的 storage engine 改成了 MEMORY......
    试了下,还是 100 多 ms...但是估计不是 IO 的问题了.
    是普遍存在的 cpu 超售问题么(也不算完全超售,因为很便宜且说明了不支持指定 cpu 型号,难道是老机器?)
    6 条回复    2022-05-30 20:15:45 +08:00
    eason1874
        1
    eason1874  
       2022 年 5 月 28 日   1
    我估计至少有 30ms 用在了 PHP 处理,json_encode 挺花时间的。如果你在 json_encode 之前还逐条循环处理,那就更花时间

    你每一步都打印已用 ms 时间数,就知道哪一步用的时间多了
    yankebupt
        2
    yankebupt  
    OP
       2022 年 5 月 28 日
    @eason1874 可能还真是 php...
    我 ssh 上去本机 select *了一下,mariadb 自己报 0.017s......
    Building
        3
    Building  
       2022 年 5 月 28 日   1
    直接查出来一百万条一般不会超过 100ms ,时间在 json parse 上
    eason1874
        4
    eason1874  
       2022 年 5 月 28 日
    @yankebupt 优化下代码吧。我记得手动拼接 json 字符串比用 json_encode 省时间,好多内置格式化函数用起来方便但会花不少时间,比如 sprintf 。避免用正则,循环也少用
    yankebupt
        5
    yankebupt  
    OP
       2022 年 5 月 28 日
    多谢....
    看了一下小鸡 ping 8-16ms ,http 备案防火墙估计要吃几 ms……
    去掉了 join 查询 id>name ,放到了 trigger ,省下几十 ms.
    fetch_assoc 可以改成 fetch_all(MYSQLI_ASSOC)但是不知道有没有提升可能没有
    准备手拼 json 了
    yankebupt
        6
    yankebupt  
    OP
       2022 年 5 月 30 日
    另外的测试结果
    返回 10000 多条,如果是直接 query ,就算直接从 MEMORY 表 select *,也要 20ms.
    如果是 query 过, cache 返回的话就可以 2-3ms 直接返回
    面临如下抉择:是否每次插入时 query 一下存进 cache 最大化加速 php 的返回时间……
    插入平均每秒到每几秒一次(传感器读数)
    php 平均 5-10 秒一次
    但是如果 write lock 把表锁住了就得不偿失了
    不知要不要做.
    准备自己测试下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5529 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 08:30 PVG 16:30 LAX 01:30 JFK 04:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86