• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ksedz
V2EX  ›  程序员

mysql 实例怎么自动识别热点数据?

  •  
  •   ksedz · Feb 12, 2020 · 3501 views
    This topic created in 2308 days ago, the information mentioned may be changed or developed.

    现在能想到

    1. 定时采集 Innodb buffer pool 的数据做分析
    2. 镜像 mysql 流量,提取 SQL 查询语句,对查询条件做分析得到热点的查询条件

    前者比较精确,数据库负担大,后者对数据库侵入小,但实现复杂些,得到的也是查询条件

    有没有其他思路?

    8 replies    2020-02-14 18:17:15 +08:00
    leviathan0992
        1
    leviathan0992  
       Feb 12, 2020
    需求是什么?
    ksedz
        2
    ksedz  
    OP
       Feb 12, 2020
    @leviathan0992 给 DBA 用的分析工具需要做识别热点数据的需求,现在都是要从使用者(开发)的业务逻辑去判断热点,就想能不能通过数据库使用记录、返回数据、状态信息等来做。
    ps1aniuge
        3
    ps1aniuge  
       Feb 12, 2020
    没必要,识别热数据应该在:
    1 数据库前面加个 redis,
    2 然后客户端弄个读取记数。每读取一次就加一。
    3 然后每天半夜,用 redis 客户端+脚本,上来收热数据的记录。
    ivyliner
        4
    ivyliner  
       Feb 12, 2020
    从 mysql 的 general log 中分析 ? 不过日志量可能会比较大
    yidinghe
        5
    yidinghe  
       Feb 12, 2020
    脱离 SQL 语句去观察热点数据意义不大。一般就是观察下执行最频繁的查询和更新语句就可以了。
    ksedz
        6
    ksedz  
    OP
       Feb 12, 2020
    @ps1aniuge 拿结果集的问题是很多查询对数据表的访问不能反应在结果集上,当然也得看实际数据情况。而且支撑的业务较多,开发用什么的都有,在 client 端做操作不太现实。

    @ivyliner 就是方案 2 吧,用分析网络流量替换了 general log,这个不好解决多个条件命中相同数据的问题。

    @yidinghe 现在已经实现了 SQL、SQL 模板、SQL 类型等的执行次数统计和排序,就是想更进一步,从数据的角度去回答使用者更常用哪些数据。“脱离 SQL 语句去观察热点数据意义不大”,我再考虑下这样做的价值,谢谢。
    snappyone
        7
    snappyone  
       Feb 12, 2020 via Android
    buffer pool 里面数据怎么采集啊?况且里面数据也不一定准吧
    ps1aniuge
        8
    ps1aniuge  
       Feb 14, 2020
    @ksedz
    多查询对数据表的访问不能反应在结果集上---------世界上没有你说的这种。
    1 费劲的查询却不出结果。
    2 出了结果,却不是想要的。
    3 想要的结果,却在 buffer pool 中,不知道。
    4 知道了在 buffer pool 中的结果,必须经过读它,却把 buffer pool 命中率搞乱了。

    所以说,redis 法是最好的方法。比分析 log 好多了。却不会影响 buffer pool。
    在 redis 中设定好 all key lru,想要结果大些,就把内存设定大些。想要结果小些,就把内存设定小些。
    每天凌晨 3 点抓取当天的统计结果,入表。n 天,平均值,最大,最小,一出。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1448 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 16:54 · PVG 00:54 · LAX 09:54 · JFK 12:54
    ♥ Do have faith in what you're doing.