› 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
blueorange
V2EX  ›  MySQL

mysql 统计优化技巧

  •  
  •   blueorange · Apr 11, 2019 · 6556 views
    This topic created in 2732 days ago, the information mentioned may be changed or developed.
    mysql 数据量已经达到千万级别, 目前有订单表, 查询用 sum 函数统计非常慢(大概要几分钟),有没有特别的方法来做统计 或者说优化一波
    8 replies  •  2019-04-18 16:50:17 +08:00
    gaius
        1
    gaius  
       Apr 11, 2019   ❤️ 1
    olap?
    nilai
        2
    nilai  
       Apr 11, 2019   ❤️ 1
    分表 再加支持分布式中间件的,比如 Mycat
    blueorange
        3
    blueorange  
    OP
       Apr 11, 2019
    @nilai 有在生产中使用过吗? 性能怎么样, 我先去了解了解,谢了老哥。
    dapang1221
        4
    dapang1221  
       Apr 11, 2019   ❤️ 1
    splunk,请
    Dragonish3600
        5
    Dragonish3600  
       Apr 11, 2019 via iPhone   ❤️ 1
    CRVV
        6
    CRVV  
       Apr 11, 2019
    你的需求不够清楚

    你要算哪些数据的 sum? 是全表的 sum 还是用 WHERE 筛选过的一部分的 sum?
    如果是筛选过的,筛选过后有多少条数据?

    如果筛选过后的数据量小,那么问题在于你的查询没有利用好索引。
    你的查询有可能本身不可能被 MySQL 的索引优化,那么解决方案是上更高级的索引(比如 PostgreSQL, Elasticsearch ),或者上 OLAP。

    如果筛选过后的数据量大或者没有筛选,那么这个问题用符合范式的关系型数据库不可解。
    你可以选择上 OLAP。
    也可以选择在某个地方加上汇总过的数据,这个取决于具体的需求。
    Linxing
        7
    Linxing  
       Apr 12, 2019 via iPhone
    hive ?
    cs8814336
        8
    cs8814336  
       Apr 18, 2019
    分治的思想,假如你要统计 10 天内的数据,你可以尝试每天跑脚本, 统计 1 天内数据,这样假如你统计 10 天只需要把 10 天内的统计数据相加就行了.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   796 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 22:32 · PVG 06:32 · LAX 15:32 · JFK 18:32
    ♥ Do have faith in what you're doing.