V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
liujia965057396
V2EX  ›  PHP

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

  •  
  •   liujia965057396 · Aug 24, 2018 · 3204 views
    This topic created in 2803 days ago, the information mentioned may be changed or developed.

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

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

    排查步骤:
    不用框架 ORM,手动写代码查询同一个 sql 语句,看看是 ORM 问题还是底层的数据库问题。
    xoxo419
        5
    xoxo419  
       Aug 24, 2018
    用什么测试并发?
    KgM4gLtF0shViDH3
        6
    KgM4gLtF0shViDH3  
       Aug 24, 2018
    单机 200 并发也不少了,你也没说配置
    leven87
        7
    leven87  
       Aug 24, 2018
    建议搞个缓存
    DavidNineRoc
        8
    DavidNineRoc  
       Aug 24, 2018
    不在当前服务器,听你的描述更多是连接数据库的方面上了。
    尝试用原生 PDO connect 数据一下。不要执行 CURD 操作。如果这样还慢,那就是连接的问题。尝试换到内网连接
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1222 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 23:29 · PVG 07:29 · LAX 16:29 · JFK 19:29
    ♥ Do have faith in what you're doing.