解释MySQL查询,而不更改上一个查询的行计数()

解释MySQL查询,而不更改上一个查询的行计数(),mysql,database-performance,rowcount,Mysql,Database Performance,Rowcount,在应用程序中,有时查询速度很慢,我会在事后“解释”它们(如果它们很慢)并记录它们,以便随着时间的推移改进应用程序 但是,如果在之后运行“explain”,row_count()将不再反映受原始查询影响的行数,这是我不希望看到的。是否有一种方法可以运行解释查询(或者任何查询),而不更改行数() 注意:我目前正在做的是打开一个单独的数据库链接,并解释如何使用该链接。这是可行的,但我无法以这种方式解释使用临时表的查询。我正在寻找一种不同的解决方案,它将保留row_count()并使用临时表。捕获row

在应用程序中,有时查询速度很慢,我会在事后“解释”它们(如果它们很慢)并记录它们,以便随着时间的推移改进应用程序

但是,如果在之后运行“explain”,row_count()将不再反映受原始查询影响的行数,这是我不希望看到的。是否有一种方法可以运行解释查询(或者任何查询),而不更改行数()

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

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

该值绑定到特定连接,并在执行每个查询时重置。。。而
EXPLAIN…
是一个查询

没有办法更改此行为。

捕获
行计数()
为变量(如果以后需要)。您可能无论如何都应该这样做,因为该值的有效范围非常有限

该值绑定到特定连接,并在执行每个查询时重置。。。而
EXPLAIN…
是一个查询

无法更改此行为。

重新排列代码

SELECT ...
get ROW_COUNT ...
EXPLAIN SELECT ...
还要注意,
EXPLAIN的
“行”列是一个近似值;它很少匹配
行计数()

重新排列代码

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

还要注意,
EXPLAIN的
“行”列是一个近似值;它很少匹配
行计数()

您的答案是我最初的想法,但在应用程序的各个地方(不是我写的),都有“select ROW\u COUNT()”硬编码;任何改变都会破坏这些。我曾经考虑过在数据库中做一些名义上的事情,在解释查询之后将row_count()更改回原始值,但这充其量只是一个黑客行为。你的回答是我最初的想法,但在应用程序的各个地方(不是我写的),都有“select row_count()”硬编码;任何改变都会破坏这些。我曾考虑过在数据库中做一些标称操作,在解释查询之后将row_count()更改回原始值,但这充其量只是一种攻击。