Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:如何使用系统变量?
概述
- mysql有大量的系统变量,从变量的适用范围分为全局系统变量和会话系统变量。全局系统变量仅仅影响新的连接会话,为其提供会话系统变量的默认值;而后者仅在当前的连接里存在并有效;
- 每个全局系统变量都有其 编译默认值,又称全局默认值;
- 全局系统变量编译默认值可以通过命令选项、选项文件配置选项予以改变,其值 称之为 全局系统变量的全局当前值;
- 某些全局系统变量的全局当前值可以通过set global改变,这些全局系统变量称之为 动态全局系统变量;当然也有只读的不可改变的全局系统变量
- 新的连接会创建一套仅适用于该连接会话的会话系统变量;
- 会话系统变量的默认值 为 对应的全局系统变量的全局当前值,称之为 会话默认值
- 某些会话系统变量的默认值可以通过set改变,这些会话系统变量又叫动态会话系统变量;当然也有只读的不可改变的会话系统变量
- 有些会话系统变量是会话里独有的,不妨叫做 独有会话系统变量;其中也有动态和只读之分
系统变量的范围限制符
- GLOBAL @@GLOBAL.
- SESSION @@SESSION @@ LOCAL @@LOCAL.
选项、系统变量设置 --各方式各有不同的设置范围,并不完全相同;另外,对同一参数的设置,表达式也不相同:如set可以使用表达式,而其他方式则不可以
- 命令选项
- 选项文件
- 运行时set
- 很多命令选项、配置选项、全局系统变量、会话系统变量system_variable_name 都一个对应的 max-system_variable_name,对其资源的最大值进行了限定
- 设置动态全局系统变量必须具有super系统权限;设置会话系统变量不需要任何权限
- 如果做了不适当的set,mysql会产生错误消息。例如 只适用于会话系统变量的设置,你设置到了全局系统变量上;或者只适用于全局的系统变量设置,你没有指明是全局设置(因为mysql对没有指明global的设置认为是会话的)
- set语句可以设置多个系统变量,各设置之间使用逗号“,”分割。最后出现的global或session会作为后面没有做出范围限定的变量的默认范围;但是如果set语句仅设置一个系统变量,且没有global或session范围修饰,则作为session范围
- 强调:set @@sys_var=var_value,总是设置会话系统变量。var_value中可以使用 表达式、变量——如果此处使用了@@sys_other_var,mysql或自动寻找该存在的变量,先会话,后全局,而不仅仅限于会话级变量!!。所以,select @@sys_var 可以返回会话系统变量的值;如果不存在,就会返回全局系统变量的值;如果全局系统变量也不存在,就产生unknown system variable的错误!
- 可以通过set使用default值:使会话默认值=全局当前值;或使全局当前值=编译默认值。注意并不是所有的系统变量都具有default值
- 某些命令选项、配置选项可以使用k、m、g、t..等表示计算机上字节大小的单位(不区分大小写;但绝对不可以使用表达式!相反,set可以使用表达式,却不能使用k、m、g、t..等。另外,对于开关型bool选项或变量设置:命令选项、配置选项可以使用0、1,不可以使用on、off!set 两种形式都可以!
显示、获取系统变量 --两种方式各有不同的显示范围,并不完全相同
- show
[GLOBAL
|SESSION]
variales; --显示所有系统变量 - show
[GLOBAL
|SESSION]
variales like 'special system variable'; --显示指定的系统变量 - show
[GLOBAL
|SESSION]
variales like '%pat[\_]ern[%\_]'; --显示模式匹配的系统变量 - select
[GLOBAL
|SESSION]
@@system_variable_name
仅仅在session里的会话系统变量 --一些仅仅存在于会话的系统变量:只读变量、可配置变量。这些变量绝大多数不能通过show variables 来显示,而仅仅能通过select来显示!
Name | Cmd-Line | Option file | System Var | Dynamic |
---|---|---|---|---|
autocommit | Yes | Yes | ||
big-tables | Yes | Yes | ||
- Variable: big_tables | Yes | Yes | ||
error_count | Yes | No | ||
foreign_key_checks | Yes | Yes | ||
identity | Yes | Yes | ||
insert_id | Yes | Yes | ||
last_insert_id | Yes | Yes | ||
ndb_table_no_logging | Yes | Yes | ||
ndb_table_temporary | Yes | Yes | ||
profiling | Yes | Yes | ||
rand_seed1 | Yes | Yes | ||
rand_seed2 | Yes | Yes | ||
sql_auto_is_null | Yes | Yes | ||
sql_big_selects | Yes | Yes | ||
sql_big_tables | Yes | Yes | ||
sql_buffer_result | Yes | Yes | ||
sql_log_bin | Yes | Yes | ||
sql_log_off | Yes | Yes | ||
sql_log_update | Yes | Yes | ||
sql_notes | Yes | Yes | ||
sql_quote_show_create | Yes | Yes | ||
sql_safe_updates | Yes | Yes | ||
sql_warnings | Yes | Yes | ||
timestamp | Yes | Yes | ||
transaction_allow_batching | Yes | Yes | ||
unique_checks | Yes | Yes | ||
warning_count | Yes | No |
全部动态系统变量(包括仅仅出现在session总的会话系统变量) --可以通过select显示,大部分也可以通过show variables显示
Variable Name | Variable Type | Variable Scope |
---|---|---|
auto_increment_increment |
numeric | GLOBAL | SESSION |
auto_increment_offset |
numeric | GLOBAL | SESSION |
autocommit |
boolean | SESSION |
automatic_sp_privileges |
boolean | GLOBAL |
big_tables |
boolean | SESSION |
binlog_cache_size |
numeric | GLOBAL |
binlog_format |
enumeration | GLOBAL | SESSION |
bulk_insert_buffer_size |
numeric | GLOBAL | SESSION |
character_set_client |
string | GLOBAL | SESSION |
character_set_connection |
string | GLOBAL | SESSION |
character_set_database |
string | GLOBAL | SESSION |
character_set_filesystem |
string | GLOBAL | SESSION |
character_set_results |
string | GLOBAL | SESSION |
character_set_server |
string | GLOBAL | SESSION |
collation_connection |
string | GLOBAL | SESSION |
collation_database |
string | GLOBAL | SESSION |
collation_server |
string | GLOBAL | SESSION |
completion_type |
numeric | GLOBAL | SESSION |
concurrent_insert |
boolean | GLOBAL |
connect_timeout |
numeric | GLOBAL |
date_format |
string | GLOBAL | SESSION |
datetime_format |
string | GLOBAL | SESSION |
debug |
string | GLOBAL | SESSION |
default_week_format |
numeric | GLOBAL | SESSION |
delay_key_write |
enumeration | GLOBAL |
delayed_insert_limit |
numeric | GLOBAL |
delayed_insert_timeout |
numeric | GLOBAL |
delayed_queue_size |
numeric | GLOBAL |
div_precision_increment |
numeric | GLOBAL | SESSION |
engine_condition_pushdown |
boolean | GLOBAL | SESSION |
event_scheduler |
enumeration | GLOBAL |
expire_logs_days |
numeric | GLOBAL |
flush |
boolean | GLOBAL |
flush_time |
numeric | GLOBAL |
foreign_key_checks |
boolean | SESSION |
ft_boolean_syntax |
string | GLOBAL |
general_log |
boolean | GLOBAL |
general_log_file |
filename | GLOBAL |
group_concat_max_len |
numeric | GLOBAL | SESSION |
identity |
numeric | SESSION |
init_connect |
string | GLOBAL |
init_slave |
string | GLOBAL |
innodb_autoextend_increment |
numeric | GLOBAL |
innodb_commit_concurrency |
numeric | GLOBAL |
innodb_concurrency_tickets |
numeric | GLOBAL |
innodb_fast_shutdown |
boolean | GLOBAL |
innodb_flush_log_at_trx_commit |
numeric | GLOBAL |
innodb_max_dirty_pages_pct |
numeric | GLOBAL |
innodb_max_purge_lag |
numeric | GLOBAL |
innodb_stats_on_metadata |
boolean | GLOBAL |
innodb_support_xa |
boolean | GLOBAL | SESSION |
innodb_sync_spin_loops |
numeric | GLOBAL |
innodb_table_locks |
boolean | GLOBAL | SESSION |
innodb_thread_concurrency |
numeric | GLOBAL |
innodb_thread_sleep_delay |
numeric | GLOBAL |
innodb_use_legacy_cardinality_algorithm |
boolean | GLOBAL |
insert_id |
numeric | SESSION |
interactive_timeout |
numeric | GLOBAL | SESSION |
join_buffer_size |
numeric | GLOBAL | SESSION |
keep_files_on_create |
boolean | GLOBAL | SESSION |
key_buffer_size |
numeric | GLOBAL |
key_cache_age_threshold |
numeric | GLOBAL |
key_cache_block_size |
numeric | GLOBAL |
key_cache_division_limit |
numeric | GLOBAL |
last_insert_id |
numeric | SESSION |
lc_time_names |
string | GLOBAL | SESSION |
local_infile |
GLOBAL |
|
log |
string | GLOBAL |
log_bin_trust_function_creators |
boolean | GLOBAL |
log_bin_trust_routine_creators |
boolean | GLOBAL |
log_output |
enumeration | GLOBAL |
log_queries_not_using_indexes |
boolean | GLOBAL |
log_slow_queries |
boolean | GLOBAL |
log_warnings |
numeric | GLOBAL | SESSION |
long_query_time |
numeric | GLOBAL | SESSION |
low_priority_updates |
boolean | GLOBAL | SESSION |
max_allowed_packet |
numeric | GLOBAL | SESSION |
max_binlog_cache_size |
numeric | GLOBAL |
max_binlog_size |
numeric | GLOBAL |
max_connect_errors |
numeric | GLOBAL |
max_connections |
numeric | GLOBAL |
max_delayed_threads |
numeric | GLOBAL | SESSION |
max_error_count |
numeric | GLOBAL | SESSION |
max_heap_table_size |
numeric | GLOBAL | SESSION |
max_insert_delayed_threads |
numeric | GLOBAL | SESSION |
max_join_size |
numeric | GLOBAL | SESSION |
max_length_for_sort_data |
numeric | GLOBAL | SESSION |
max_prepared_stmt_count |
numeric | GLOBAL |
max_relay_log_size |
numeric | GLOBAL |
max_seeks_for_key |
numeric | GLOBAL | SESSION |
max_sort_length |
numeric | GLOBAL | SESSION |
max_sp_recursion_depth |
numeric | GLOBAL | SESSION |
max_tmp_tables |
numeric | GLOBAL | SESSION |
max_user_connections |
numeric | GLOBAL | SESSION |
max_write_lock_count |
numeric | GLOBAL |
min_examined_row_limit |
numeric | GLOBAL | SESSION |
multi_range_count |
numeric | GLOBAL | SESSION |
myisam_data_pointer_size |
numeric | GLOBAL |
myisam_max_sort_file_size |
numeric | GLOBAL |
myisam_repair_threads |
numeric | GLOBAL | SESSION |
myisam_sort_buffer_size |
numeric | GLOBAL | SESSION |
myisam_stats_method |
enumeration | GLOBAL | SESSION |
myisam_use_mmap |
boolean | GLOBAL |
ndb_autoincrement_prefetch_sz |
numeric | GLOBAL | SESSION |
ndb_cache_check_time |
numeric | GLOBAL |
ndb_extra_logging |
numeric | GLOBAL |
ndb_force_send |
boolean | GLOBAL | SESSION |
ndb_log_empty_epochs |
boolean | GLOBAL |
ndb_log_update_as_write |
boolean | GLOBAL |
ndb_log_updated_only |
boolean | GLOBAL |
ndb_optimization_delay |
numeric | GLOBAL |
ndb_table_no_logging |
boolean | SESSION |
ndb_table_temporary |
boolean | SESSION |
ndb_use_exact_count |
boolean | GLOBAL | SESSION |
net_buffer_length |
numeric | GLOBAL | SESSION |
net_read_timeout |
numeric | GLOBAL | SESSION |
net_retry_count |
numeric | GLOBAL | SESSION |
net_write_timeout |
numeric | GLOBAL | SESSION |
new |
boolean | GLOBAL | SESSION |
old_passwords |
boolean | GLOBAL | SESSION |
optimizer_prune_level |
boolean | GLOBAL | SESSION |
optimizer_search_depth |
numeric | GLOBAL | SESSION |
optimizer_switch |
set | GLOBAL | SESSION |
preload_buffer_size |
numeric | GLOBAL | SESSION |
profiling |
boolean | SESSION |
profiling_history_size |
numeric | GLOBAL | SESSION |
query_alloc_block_size |
numeric | GLOBAL | SESSION |
query_cache_limit |
numeric | GLOBAL |
query_cache_min_res_unit |
numeric | GLOBAL |
query_cache_size |
numeric | GLOBAL |
query_cache_type |
enumeration | GLOBAL | SESSION |
query_cache_wlock_invalidate |
boolean | GLOBAL | SESSION |
query_prealloc_size |
numeric | GLOBAL | SESSION |
rand_seed1 |
numeric | SESSION |
rand_seed2 |
numeric | SESSION |
range_alloc_block_size |
numeric | GLOBAL | SESSION |
read_buffer_size |
numeric | GLOBAL | SESSION |
read_only |
numeric | GLOBAL |
read_rnd_buffer_size |
numeric | GLOBAL | SESSION |
relay_log_purge |
boolean | GLOBAL |
rpl_recovery_rank |
numeric | GLOBAL |
safe_show_database |
boolean | GLOBAL |
secure_auth |
boolean | GLOBAL |
server_id |
numeric | GLOBAL |
slave_allow_batching |
boolean | GLOBAL |
slave_compressed_protocol |
boolean | GLOBAL |
slave_exec_mode |
enumeration | GLOBAL |
slave_net_timeout |
numeric | GLOBAL |
slave_transaction_retries |
numeric | GLOBAL |
slow_launch_time |
numeric | GLOBAL |
slow_query_log |
boolean | GLOBAL |
slow_query_log_file |
filename | GLOBAL |
sort_buffer_size |
numeric | GLOBAL | SESSION |
sql_auto_is_null |
boolean | SESSION |
sql_big_selects |
boolean | SESSION |
sql_big_tables |
boolean | SESSION |
sql_buffer_result |
boolean | SESSION |
sql_log_bin |
boolean | SESSION |
sql_log_off |
boolean | SESSION |
sql_log_update |
boolean | SESSION |
sql_low_priority_updates |
boolean | GLOBAL | SESSION |
sql_max_join_size |
numeric | GLOBAL | SESSION |
sql_mode |
set | GLOBAL | SESSION |
sql_notes |
boolean | SESSION |
sql_quote_show_create |
boolean | SESSION |
sql_safe_updates |
boolean | SESSION |
sql_select_limit |
numeric | GLOBAL | SESSION |
sql_slave_skip_counter |
numeric | GLOBAL |
sql_warnings |
boolean | SESSION |
storage_engine |
enumeration | GLOBAL | SESSION |
sync_binlog |
numeric | GLOBAL |
sync_frm |
boolean | GLOBAL |
table_cache |
numeric | GLOBAL |
table_definition_cache |
numeric | GLOBAL |
table_lock_wait_timeout |
numeric | GLOBAL |
table_open_cache |
numeric | GLOBAL |
table_type |
enumeration | GLOBAL | SESSION |
thread_cache_size |
numeric | GLOBAL |
time_format |
string | GLOBAL | SESSION |
time_zone |
string | GLOBAL | SESSION |
timed_mutexes |
boolean | GLOBAL |
timestamp |
string | SESSION |
tmp_table_size |
numeric | GLOBAL | SESSION |
transaction_alloc_block_size |
numeric | GLOBAL | SESSION |
transaction_allow_batching |
boolean | SESSION |
transaction_prealloc_size |
numeric | GLOBAL | SESSION |
tx_isolation |
enumeration | GLOBAL | SESSION |
unique_checks |
boolean | SESSION |
updatable_views_with_limit |
boolean | GLOBAL | SESSION |
wait_timeout |
numeric | GLOBAL | SESSION |