1
0
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:
Sergey Vojtovich
2015-06-17 13:09:22 +04:00
parent 8f603bcbca
commit 12d9fe14be
2 changed files with 10 additions and 4 deletions

View File

@ -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 */

View File

@ -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
{ {