我问这个问题的原因是我想确定我的某些查询是否会使用比 query_cache_limit 更多的内存。有些人建议使用“显示表状态,如“表名”。我认为这与这个问题无关。谢谢。
问问题
1091 次
2 回答
1
结果集的大小在库存 MySQL 中不可用。
Percona Server通过在其扩展的慢查询日志格式中添加一个字段来支持此信息。查看此日志中的“Bytes_sent”字段。
请参阅http://www.percona.com/doc/percona-server/5.5/diagnostics/slow_extended_55.html#memory-footprint
于 2013-05-15T21:24:18.383 回答
1
请注意,这不适合胆小的人。在另一个盒子上做,而不是生产!
停止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)
于 2013-05-15T21:42:56.307 回答