MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
wuxiaolin
V2EX  ›  MySQL

简单的查询, cpu 占用高,瓶颈在哪里?

  •  
  •   wuxiaolin · Jun 13, 2017 · 4197 views
    This topic created in 3283 days ago, the information mentioned may be changed or developed.
    我有一条简单的 sql,如下
    SELECT *
    FROM table_a w
    LEFT JOIN table_b u ON w.u = u.u
    WHERE w.u = 20 AND w.t in(3,4,5)
    ORDER BY w.id DESC
    LIMIT 0,10
    对应的条件都有索引,查询也很快,0.08 秒
    表数据也才 20w
    但是在做压测时,每秒并发到 150 个失败率很高 50%+,查询服务器负载 cpu 占用很高
    explain,索引都有命中,就是一个索引命中条数是 9w 条
    这里具体的瓶颈是在哪里呢,有什么优化的方法?
    4 replies    2017-06-14 11:17:54 +08:00
    phttc
        1
    phttc  
       Jun 13, 2017
    ORDER BY 的时候用不到那个索引,,只有连接表的时候才用到索引
    wuxiaolin
        2
    wuxiaolin  
    OP
       Jun 14, 2017
    @phttc 瓶颈是在 order by 吗? 但是必须排序这个需要怎么优化
    bzzhou
        3
    bzzhou  
       Jun 14, 2017
    如果表规模才 20W,80ms 算很慢了(当然也得看服务器配置)

    初步判断 CPU 都消耗在 ORDER BY 排序这里了,可以把 order by 先去掉验证一下
    msg7086
        4
    msg7086  
       Jun 14, 2017
    你有试过简单粗暴地拆成两句查询么 = =
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4915 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:46 · PVG 17:46 · LAX 02:46 · JFK 05:46
    ♥ Do have faith in what you're doing.