【问题标题】:How to get memory size used for a query in mysql?如何在mysql中获取用于查询的内存大小?
【发布时间】:2013-05-15 21:14:19
【问题描述】:

我问这个问题的原因是我想确定我的某些查询是否会使用比 query_cache_limit 更多的内存。有些人建议使用“显示表​​状态,如“table_name”。我认为这与这个问题无关。谢谢。

【问题讨论】:

  • 当您说已使用内存大小时,在我的回答中,我假设您的意思是您要检查的性能不佳的查询对服务器的影响。如果只是结果集的大小或更高级别,请务必忽略我的答案

标签: mysql database-administration database-tuning


【解决方案1】:

结果集的大小在库存 MySQL 中不可用。

Percona Server 确实支持此信息,方法是在其扩展的慢查询日志格式中添加一个字段。查看此日志中的“Bytes_sent”字段。

http://www.percona.com/doc/percona-server/5.5/diagnostics/slow_extended_55.html#memory-footprint

【讨论】:

  • 谢谢比尔,但是MySql如何判断结果集是否超过限制?应该有一些方法来完成这项工作。
  • 是的,但并非所有内部测量都向用户公开。
【解决方案2】:

请注意,这不适合胆小的人。并在另一个盒子上做,而不是生产!

停止mysql,在valgrind的视图下启动。

做你的事一段时间。例如运行一个使用您的例程/查询的快速 php。

最多可能捕获 20 秒的数据使用量。

然后通过下面的相同停止停止mysql。

然后检查 /tmp 目录中的日志文件...按时间戳检查数据

service mysql stop
apt-get install valgrind
valgrind --tool=massif --massif-out-file=/tmp/massif.out /etc/init.d/mysql start



    #-----------
    snapshot=32
    #-----------
    time=217073
    mem_heap_B=1140
    mem_heap_extra_B=324
    mem_stacks_B=0
    heap_tree=empty
    #-----------
    snapshot=33
    #-----------
    time=226099
    mem_heap_B=1156
    mem_heap_extra_B=332
    mem_stacks_B=0
    heap_tree=detailed
    n3: 1156 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
     n5: 944 0x40AA47: ??? (in /bin/dash)
      n3: 832 0x41184C: ??? (in /bin/dash)
       n1: 704 0x4120F5: ??? (in /bin/dash)
        n1: 704 0x4020E4: ??? (in /bin/dash)
         n0: 704 0x4E4E76B: (below main) (libc-start.c:226)
       n1: 96 0x411EC0: ??? (in /bin/dash)
        n1: 96 0x4048E3: ??? (in /bin/dash)
         n1: 96 0x403BD5: ??? (in /bin/dash)
          n1: 96 0x40A88C: ??? (in /bin/dash)
           n1: 96 0x402159: ??? (in /bin/dash)
            n0: 96 0x4E4E76B: (below main) (libc-start.c:226)
       n1: 32 0x41212F: ??? (in /bin/dash)
        n1: 32 0x4020E4: ??? (in /bin/dash)
         n0: 32 0x4E4E76B: (below main) (libc-start.c:226)

【讨论】:

    猜你喜欢
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2021-08-20
    • 2017-10-30
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多