解释MySQL查询而不更改先前查询中的row_count()

问题描述 投票:0回答:2

在一个应用程序中,有时查询很慢,我会在事后(如果它们很慢)“解释”它们并记录它们,这样我就可以随着时间的推移改进应用程序。

但是,如果我之后运行“解释”,则row_count()不再反映原始查询所影响的行数,这是我不想要的。有没有办法运行解释查询(或任何查询),而不是更改row_count()?

注意:我目前正在做的是打开一个单独的数据库链接,并解释使用该链接。这有效,但我无法以这种方式使用临时表来解释查询。我正在寻找一个不同的解决方案,它将保留row_count()并使用临时表。

mysql database-performance rowcount
2个回答
2
投票

如果您以后需要,可以将row_count()捕获到变量中。无论如何你应该这样做,因为这个值的有效范围非常有限。

该值与特定连接相关联,并在您执行的每个查询中重置...并且EXPLAIN ...是一个查询。

没有办法改变这种行为。


0
投票

重新排列代码......

SELECT ...
get ROW_COUNT ...
EXPLAIN SELECT ...

另请注意,EXPLAIN's“行”列是近似值;它很少匹配ROW_COUNT()

© www.soinside.com 2019 - 2024. All rights reserved.