V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liujia965057396
V2EX  ›  PHP

PHP 执行 sql 语句抢占很多 cpu,但是 mysql 数据库不在当前服务器

  •  
  •   liujia965057396 · 2018-08-24 09:41:43 +08:00 · 2427 次点击
    这是一个创建于 2043 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如上, 200 并发。php 代码和 mysql 不是同一台服务器 我用的 tp5 框架,只是写了三条查询 sql 语句,cpu 狂飙到 70%,但是如果把这些 sql 查询语句注释掉,只执行一个 echo,cpu 明显下降。 请问这是因为什么?怎么才能改善?

    8 条回复    2018-08-24 10:49:11 +08:00
    MeteorCat
        1
    MeteorCat  
       2018-08-24 09:48:20 +08:00 via Android
    ???你把 sql 查询注销掉不久不执行 mysql 查询了吗?
    zarte
        2
    zarte  
       2018-08-24 10:04:58 +08:00
    正常吧.200 并发查询回来的数据有个循环存数组的操作,可以加 tp 的数据缓存试下
    realpg
        3
    realpg  
       2018-08-24 10:26:35 +08:00
    说明你需要一个架构师 /运维工程师 /DBA
    zn
        4
    zn  
       2018-08-24 10:27:34 +08:00
    没代码你说个 J.......

    排查步骤:
    不用框架 ORM,手动写代码查询同一个 sql 语句,看看是 ORM 问题还是底层的数据库问题。
    xoxo419
        5
    xoxo419  
       2018-08-24 10:36:50 +08:00
    用什么测试并发?
    bestkayle
        6
    bestkayle  
       2018-08-24 10:39:11 +08:00
    单机 200 并发也不少了,你也没说配置
    leven87
        7
    leven87  
       2018-08-24 10:44:13 +08:00
    建议搞个缓存
    DavidNineRoc
        8
    DavidNineRoc  
       2018-08-24 10:49:11 +08:00
    不在当前服务器,听你的描述更多是连接数据库的方面上了。
    尝试用原生 PDO connect 数据一下。不要执行 CURD 操作。如果这样还慢,那就是连接的问题。尝试换到内网连接
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1234 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:01 · PVG 02:01 · LAX 11:01 · JFK 14:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.