关闭。这个问题需要细节或清晰。它目前不接受答案。**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
两年前关门了。改进这个问题我试图找到我的查询的大小(mb),但我不知道怎么做。我想这样提取查询的大小:
SELECT size_query FROM my_query
“我的查询”可能在哪里: SELECT * FROM MyTable WHERE idFactory = 1
SELECT * FROM MyTable WHERE idFactory = 1
cwdobuhd1#
如果我对你的问题理解正确的话,ajreal已经提供了这个问题的解决方案。引用:
select sum(row_size) from ( select char_length(column1)+ char_length(column2)+ char_length(column3)+ char_length(column4) ... <-- repeat for all columns as row_size from your_table ) as tbl1;
这将给出以字节为单位的查询大小,除以1024表示千字节,再除以兆字节。编辑:如果您要将完整的结果集拉回到php,并想知道它的大小,您可以使用如下方法在php中计算:
<?php $data = [ [ 'item' => 'Apple', 'type' => 'fruit', 'in_stock' => true ], [ 'item' => 'Biscuits', 'type' => 'confectionery', 'in_stock' => false ], [ 'item' => 'Milk', 'type' => 'dairy', 'in_stock' => true ], ]; function get_array_size(&$array) { $size = 0; foreach ($array as $key => $value) { if (is_array($value)) { $size += get_array_size($value); } else if (is_string($value)) { $size += strlen($value); } else if (is_bool($value)) { $size += 1; } /* else if ( some other type ) { } */ } return $size; } echo get_array_size($data); // Outputs 43
这取决于您的用例,您可能接受,也可能不接受。如果要测量导线上的物理字节,这可能不够精确。
1条答案
按热度按时间cwdobuhd1#
如果我对你的问题理解正确的话,ajreal已经提供了这个问题的解决方案。引用:
这将给出以字节为单位的查询大小,除以1024表示千字节,再除以兆字节。
编辑:如果您要将完整的结果集拉回到php,并想知道它的大小,您可以使用如下方法在php中计算:
这取决于您的用例,您可能接受,也可能不接受。如果要测量导线上的物理字节,这可能不够精确。