mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-7956 - handler::rebind_psi() takes 0.07% in OLTP RO
Do not call handler::rebind_psi() and handler::unbind_psi() when performance schema is compiled out. Overhead change: handler::rebind_psi 0.04% -> out of radar handler::unbind_psi 0.03% -> out of radar open_table 0.21% -> 0.18% close_thread_table 0.05% -> 0.05%
This commit is contained in:
@ -30,6 +30,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_PSI_TABLE_INTERFACE
|
#ifdef HAVE_PSI_TABLE_INTERFACE
|
||||||
|
#define MYSQL_UNBIND_TABLE(handler) (handler)->unbind_psi()
|
||||||
|
#define MYSQL_REBIND_TABLE(handler) (handler)->rebind_psi()
|
||||||
|
|
||||||
#define PSI_CALL_unbind_table PSI_TABLE_CALL(unbind_table)
|
#define PSI_CALL_unbind_table PSI_TABLE_CALL(unbind_table)
|
||||||
#define PSI_CALL_rebind_table PSI_TABLE_CALL(rebind_table)
|
#define PSI_CALL_rebind_table PSI_TABLE_CALL(rebind_table)
|
||||||
#define PSI_CALL_open_table PSI_TABLE_CALL(open_table)
|
#define PSI_CALL_open_table PSI_TABLE_CALL(open_table)
|
||||||
@ -38,6 +41,9 @@
|
|||||||
#define PSI_CALL_release_table_share PSI_TABLE_CALL(release_table_share)
|
#define PSI_CALL_release_table_share PSI_TABLE_CALL(release_table_share)
|
||||||
#define PSI_CALL_drop_table_share PSI_TABLE_CALL(drop_table_share)
|
#define PSI_CALL_drop_table_share PSI_TABLE_CALL(drop_table_share)
|
||||||
#else
|
#else
|
||||||
|
#define MYSQL_UNBIND_TABLE(handler) /* no-op */
|
||||||
|
#define MYSQL_REBIND_TABLE(handler) /* no-op */
|
||||||
|
|
||||||
#define PSI_CALL_unbind_table(A1) /* no-op */
|
#define PSI_CALL_unbind_table(A1) /* no-op */
|
||||||
#define PSI_CALL_rebind_table(A1,A2,A3) NULL
|
#define PSI_CALL_rebind_table(A1,A2,A3) NULL
|
||||||
#define PSI_CALL_close_table(A1) /* no-op */
|
#define PSI_CALL_close_table(A1) /* no-op */
|
||||||
|
@ -1100,7 +1100,7 @@ void close_thread_table(THD *thd, TABLE **table_ptr)
|
|||||||
critical section.
|
critical section.
|
||||||
*/
|
*/
|
||||||
if (table->file != NULL)
|
if (table->file != NULL)
|
||||||
table->file->unbind_psi();
|
MYSQL_UNBIND_TABLE(table->file);
|
||||||
|
|
||||||
tc_release_table(table);
|
tc_release_table(table);
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
@ -1635,8 +1635,8 @@ use_temporary_table(THD *thd, TABLE *table, TABLE **out_table)
|
|||||||
thread to another, we need to let the performance schema know that,
|
thread to another, we need to let the performance schema know that,
|
||||||
for aggregates per thread to work properly.
|
for aggregates per thread to work properly.
|
||||||
*/
|
*/
|
||||||
table->file->unbind_psi();
|
MYSQL_UNBIND_TABLE(table->file);
|
||||||
table->file->rebind_psi();
|
MYSQL_REBIND_TABLE(table->file);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -2530,7 +2530,7 @@ retry_share:
|
|||||||
if (table)
|
if (table)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(table->file != NULL);
|
DBUG_ASSERT(table->file != NULL);
|
||||||
table->file->rebind_psi();
|
MYSQL_REBIND_TABLE(table->file);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user