如何在mysql中获取用于查询的内存大小?

如何在mysql中获取用于查询的内存大小?,mysql,database-administration,database-tuning,Mysql,Database Administration,Database Tuning,我问这个问题的原因是我想确定我的一些查询是否会使用比query\u cache\u limit更多的内存。有些人建议使用“显示表格状态”,比如“表格名称”。我认为这与这个问题无关。谢谢。结果集的大小在库存MySQL中不可用 通过将字段添加到扩展的慢速查询日志格式,不支持此信息。查看此日志中的“已发送字节”字段 请参见注意,这不是为心脏虚弱的人准备的。在另一个盒子上做,而不是生产 停止mysql并在valgrind视图下启动它 做你的事一会儿。例如,运行一个使用例程/查询的快速php 最多可以捕获

我问这个问题的原因是我想确定我的一些查询是否会使用比query\u cache\u limit更多的内存。有些人建议使用“显示表格状态”,比如“表格名称”。我认为这与这个问题无关。谢谢。

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

通过将字段添加到扩展的慢速查询日志格式,不支持此信息。查看此日志中的“已发送字节”字段


请参见

注意,这不是为心脏虚弱的人准备的。在另一个盒子上做,而不是生产

停止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)

当您说使用了内存大小时,在我的回答中,我假设您指的是要检查的性能不佳的查询对服务器的影响。如果只是结果集的大小或更高的级别,请忽略我的答案Hanks Bill,但是MySql如何判断结果集是否超出了限制?应该有一些方法来完成这项工作。是的,但并不是所有的内部测量都向用户公开。