diff options
author | Monty <monty@mariadb.org> | 2022-04-05 22:50:42 +0300 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2022-11-16 15:48:53 +0200 |
commit | 162c3b395fdc7b9b15e588d39640259a1ed96850 (patch) | |
tree | 33c4e4b939a0576b13f4e47430c79443ab98377d | |
parent | 02e12b8eb6cf2395e8da80d6cb860231437c39e1 (diff) | |
download | mariadb-git-162c3b395fdc7b9b15e588d39640259a1ed96850.tar.gz |
Align elements in struct system_variables
This reduces the size of THD from 1128 to 1104 (24 bytes)
Note much but will still save some memory accesses
-rw-r--r-- | sql/sql_class.h | 77 |
1 files changed, 38 insertions, 39 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h index 8274a2db5e9..07c03f47aab 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -670,7 +670,6 @@ typedef struct system_variables ulonglong max_statement_time; ulonglong optimizer_switch; ulonglong optimizer_trace; - ulong optimizer_trace_max_mem_size; sql_mode_t sql_mode; ///< which non-standard SQL behaviour should be enabled sql_mode_t old_behavior; ///< which old SQL behaviour should be enabled ulonglong option_bits; ///< OPTION_xxx constants, e.g. OPTION_PROFILING @@ -684,6 +683,7 @@ typedef struct system_variables ulonglong sortbuff_size; ulonglong default_regex_flags; ulonglong max_mem_used; + ulonglong max_rowid_filter_size; /** Place holders to store Multi-source variables in sys_var.cc during @@ -695,11 +695,13 @@ typedef struct system_variables double optimizer_index_block_copy_cost, optimizer_key_next_find_cost; double optimizer_row_copy_cost, optimizer_key_copy_cost; double optimizer_where_cost, optimizer_key_cmp_cost; + double long_query_time_double, max_statement_time_double; + double sample_percentage; ha_rows select_limit; ha_rows max_join_size; ha_rows expensive_subquery_limit; - ulong auto_increment_increment, auto_increment_offset; + #ifdef WITH_WSREP /* Stored values of the auto_increment_increment and auto_increment_offset @@ -708,10 +710,12 @@ typedef struct system_variables original values (which are set by the user) by calculated ones (which are based on the cluster size): */ + ulonglong wsrep_gtid_seq_no; ulong saved_auto_increment_increment, saved_auto_increment_offset; ulong saved_lock_wait_timeout; - ulonglong wsrep_gtid_seq_no; #endif /* WITH_WSREP */ + + ulong auto_increment_increment, auto_increment_offset; ulong column_compression_zlib_strategy; ulong lock_wait_timeout; ulong join_cache_level; @@ -734,8 +738,8 @@ typedef struct system_variables ulong optimizer_search_depth; ulong optimizer_selectivity_sampling_limit; ulong optimizer_use_condition_selectivity; + ulong optimizer_trace_max_mem_size; ulong use_stat_tables; - double sample_percentage; ulong histogram_size; ulong histogram_type; ulong preload_buff_size; @@ -766,6 +770,15 @@ typedef struct system_variables ulong updatable_views_with_limit; ulong alter_algorithm; ulong server_id; + ulong session_track_transaction_info; + ulong threadpool_priority; + ulong optimizer_max_sel_arg_weight; + ulong vers_alter_history; + + /* deadlock detection */ + ulong wt_timeout_short, wt_deadlock_search_depth_short; + ulong wt_timeout_long, wt_deadlock_search_depth_long; + /** In slave thread we need to know in behalf of which thread the query is being run to replicate temp tables properly @@ -781,6 +794,12 @@ typedef struct system_variables uint group_concat_max_len; uint eq_range_index_dive_limit; uint optimizer_cache_hit_ratio; // Stored in handler::optimizer_cache_cost + uint idle_transaction_timeout; + uint idle_readonly_transaction_timeout; + uint idle_write_transaction_timeout; + uint column_compression_threshold; + uint column_compression_zlib_level; + uint in_subquery_conversion_threshold; int max_user_connections; /** @@ -801,6 +820,17 @@ typedef struct system_variables my_bool binlog_annotate_row_events; my_bool binlog_direct_non_trans_update; my_bool column_compression_zlib_wrap; + my_bool sysdate_is_now; + my_bool wsrep_on; + my_bool wsrep_causal_reads; + my_bool wsrep_dirty_reads; + my_bool pseudo_slave_mode; + my_bool session_track_schema; + my_bool session_track_state_change; +#ifdef USER_VAR_TRACKING + my_bool session_track_user_variables; +#endif // USER_VAR_TRACKING + my_bool tcp_nodelay; plugin_ref table_plugin; plugin_ref tmp_table_plugin; @@ -827,47 +857,16 @@ typedef struct system_variables MY_LOCALE *lc_time_names; Time_zone *time_zone; + char *session_track_system_variables; - my_bool sysdate_is_now; - - /* deadlock detection */ - ulong wt_timeout_short, wt_deadlock_search_depth_short; - ulong wt_timeout_long, wt_deadlock_search_depth_long; - - my_bool wsrep_on; - my_bool wsrep_causal_reads; - uint wsrep_sync_wait; - ulong wsrep_retry_autocommit; + /* Some wsrep variables */ ulonglong wsrep_trx_fragment_size; + ulong wsrep_retry_autocommit; ulong wsrep_trx_fragment_unit; ulong wsrep_OSU_method; - my_bool wsrep_dirty_reads; - double long_query_time_double, max_statement_time_double; - - my_bool pseudo_slave_mode; - - char *session_track_system_variables; - ulong session_track_transaction_info; - my_bool session_track_schema; - my_bool session_track_state_change; -#ifdef USER_VAR_TRACKING - my_bool session_track_user_variables; -#endif // USER_VAR_TRACKING - my_bool tcp_nodelay; - - ulong threadpool_priority; - - uint idle_transaction_timeout; - uint idle_readonly_transaction_timeout; - uint idle_write_transaction_timeout; - uint column_compression_threshold; - uint column_compression_zlib_level; - uint in_subquery_conversion_threshold; - ulong optimizer_max_sel_arg_weight; - ulonglong max_rowid_filter_size; + uint wsrep_sync_wait; vers_asof_timestamp_t vers_asof_timestamp; - ulong vers_alter_history; my_bool binlog_alter_two_phase; } SV; |