14.12 InnoDB 부팅 옵션 및 시스템 변수
true 또는 false 인 시스템 변수는 서버 시작시 변수의 이름을 지정하여 사용 할 수 있으며,
--skip-
프리픽스를 사용하여 해제 할 수 있습니다. 예를 들어,InnoDB
적응 형 해시 인덱스를 활성화하거나 비활성화하려면 명령 줄에서--innodb_adaptive_hash_index
또는--skip-innodb_adaptive_hash_index
를 사용하거나 옵션 파일에서innodb_adaptive_hash_index
또는skip-innodb_adaptive_hash_index
을 사용합니다.수치가 지정되는 시스템 변수는 명령 행에서
--
로 지정하거나 옵션 파일에서var_name
=value
로 지정할 수 있습니다.var_name
=value
많은 시스템 변수는 런타임에 변경할 수 있습니다 ( 섹션 5.1.5.2 "동적 시스템 변수" 를 참조하십시오).
GLOBAL
와SESSION
변수 범위 한정자 내용은SET
문 문서를 참조하십시오.일부 옵션은
InnoDB
데이터 파일의 위치 및 레이아웃이 제어됩니다. 섹션 14.3 "InnoDB 구성" 에서는이 옵션을 사용하는 방법을 설명합니다.초기 단계에서는 사용하지 않는 같은 일부 옵션은 컴퓨터의 처리 능력과 데이터베이스 워크로드 에 따라
InnoDB
의 성능 특성을 조정하는 데 도움이됩니다.옵션 및 시스템 변수의 지정에 관한 자세한 내용은 섹션 4.2.3 "프로그램 옵션 지정" 을 참조하십시오.
표 14.6 InnoDB
옵션 / 변수 참조
이름 | 명령 행 | 옵션 파일 | 시스템 변수 | 상태 변수 | 변수 범위 | 동적 |
---|---|---|---|---|---|---|
daemon_memcached_enable_binlog | 예 | 예 | 예 | 글로벌 | 아니오 | |
daemon_memcached_engine_lib_name | 예 | 예 | 예 | 글로벌 | 아니오 | |
daemon_memcached_engine_lib_path | 예 | 예 | 예 | 글로벌 | 아니오 | |
daemon_memcached_option | 예 | 예 | 예 | 글로벌 | 아니오 | |
daemon_memcached_r_batch_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
daemon_memcached_w_batch_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
foreign_key_checks | 예 | 모두 | 예 | |||
have_innodb | 예 | 글로벌 | 아니오 | |||
ignore-builtin-innodb | 예 | 예 | 글로벌 | 아니오 | ||
- 변수 : ignore_builtin_innodb | 예 | 글로벌 | 아니오 | |||
innodb | 예 | 예 | ||||
innodb_adaptive_flushing | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_adaptive_flushing_lwm | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_adaptive_hash_index | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_adaptive_max_sleep_delay | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_additional_mem_pool_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_api_bk_commit_interval | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_api_disable_rowlock | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_api_enable_binlog | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_api_enable_mdl | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_api_trx_level | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_autoextend_increment | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_autoinc_lock_mode | 예 | 예 | 예 | 글로벌 | 아니오 | |
Innodb_available_undo_logs | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_bytes_data | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_bytes_dirty | 예 | 글로벌 | 아니오 | |||
innodb_buffer_pool_dump_at_shutdown | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_buffer_pool_dump_now | 예 | 예 | 예 | 글로벌 | 예 | |
Innodb_buffer_pool_dump_status | 예 | 글로벌 | 아니오 | |||
innodb_buffer_pool_filename | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_buffer_pool_instances | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_buffer_pool_load_abort | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_buffer_pool_load_at_startup | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_buffer_pool_load_now | 예 | 예 | 예 | 글로벌 | 예 | |
Innodb_buffer_pool_load_status | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_pages_data | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_pages_dirty | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_pages_flushed | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_pages_free | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_pages_latched | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_pages_misc | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_pages_total | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_read_ahead | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_read_ahead_evicted | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_read_requests | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_reads | 예 | 글로벌 | 아니오 | |||
innodb_buffer_pool_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
Innodb_buffer_pool_wait_free | 예 | 글로벌 | 아니오 | |||
Innodb_buffer_pool_write_requests | 예 | 글로벌 | 아니오 | |||
innodb_change_buffer_max_size | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_change_buffering | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_checksum_algorithm | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_checksums | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_cmp_per_index_enabled | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_commit_concurrency | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_compression_failure_threshold_pct | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_compression_level | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_compression_pad_pct_max | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_concurrency_tickets | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_data_file_path | 예 | 예 | 예 | 글로벌 | 아니오 | |
Innodb_data_fsyncs | 예 | 글로벌 | 아니오 | |||
innodb_data_home_dir | 예 | 예 | 예 | 글로벌 | 아니오 | |
Innodb_data_pending_fsyncs | 예 | 글로벌 | 아니오 | |||
Innodb_data_pending_reads | 예 | 글로벌 | 아니오 | |||
Innodb_data_pending_writes | 예 | 글로벌 | 아니오 | |||
Innodb_data_read | 예 | 글로벌 | 아니오 | |||
Innodb_data_reads | 예 | 글로벌 | 아니오 | |||
Innodb_data_writes | 예 | 글로벌 | 아니오 | |||
Innodb_data_written | 예 | 글로벌 | 아니오 | |||
Innodb_dblwr_pages_written | 예 | 글로벌 | 아니오 | |||
Innodb_dblwr_writes | 예 | 글로벌 | 아니오 | |||
innodb_disable_sort_file_cache | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_doublewrite | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_fast_shutdown | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_file_format | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_file_format_check | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_file_format_max | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_file_per_table | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_flush_log_at_timeout | 예 | 글로벌 | 예 | |||
innodb_flush_log_at_trx_commit | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_flush_method | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_flush_neighbors | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_flushing_avg_loops | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_force_load_corrupted | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_force_recovery | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_ft_aux_table | 예 | 글로벌 | 예 | |||
innodb_ft_cache_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_ft_enable_diag_print | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_ft_enable_stopword | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_ft_max_token_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_ft_min_token_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_ft_num_word_optimize | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_ft_result_cache_limit | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_ft_server_stopword_table | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_ft_sort_pll_degree | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_ft_total_cache_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_ft_user_stopword_table | 예 | 예 | 예 | 모두 | 예 | |
Innodb_have_atomic_builtins | 예 | 글로벌 | 아니오 | |||
innodb_io_capacity | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_io_capacity_max | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_large_prefix | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_lock_wait_timeout | 예 | 예 | 예 | 모두 | 예 | |
innodb_locks_unsafe_for_binlog | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_log_buffer_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_log_compressed_pages | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_log_file_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_log_files_in_group | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_log_group_home_dir | 예 | 예 | 예 | 글로벌 | 아니오 | |
Innodb_log_waits | 예 | 글로벌 | 아니오 | |||
Innodb_log_write_requests | 예 | 글로벌 | 아니오 | |||
Innodb_log_writes | 예 | 글로벌 | 아니오 | |||
innodb_lru_scan_depth | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_max_dirty_pages_pct | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_max_dirty_pages_pct_lwm | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_max_purge_lag | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_max_purge_lag_delay | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_mirrored_log_groups | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_monitor_disable | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_monitor_enable | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_monitor_reset | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_monitor_reset_all | 예 | 예 | 예 | 글로벌 | 예 | |
Innodb_num_open_files | 예 | 글로벌 | 아니오 | |||
innodb_old_blocks_pct | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_old_blocks_time | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_online_alter_log_max_size | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_open_files | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_optimize_fulltext_only | 예 | 예 | 예 | 글로벌 | 예 | |
Innodb_os_log_fsyncs | 예 | 글로벌 | 아니오 | |||
Innodb_os_log_pending_fsyncs | 예 | 글로벌 | 아니오 | |||
Innodb_os_log_pending_writes | 예 | 글로벌 | 아니오 | |||
Innodb_os_log_written | 예 | 글로벌 | 아니오 | |||
Innodb_page_size | 예 | 글로벌 | 아니오 | |||
innodb_page_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
Innodb_pages_created | 예 | 글로벌 | 아니오 | |||
Innodb_pages_read | 예 | 글로벌 | 아니오 | |||
Innodb_pages_written | 예 | 글로벌 | 아니오 | |||
innodb_print_all_deadlocks | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_purge_batch_size | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_purge_threads | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_random_read_ahead | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_read_ahead_threshold | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_read_io_threads | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_read_only | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_replication_delay | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_rollback_on_timeout | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_rollback_segments | 예 | 예 | 예 | 글로벌 | 예 | |
Innodb_row_lock_current_waits | 예 | 글로벌 | 아니오 | |||
Innodb_row_lock_time | 예 | 글로벌 | 아니오 | |||
Innodb_row_lock_time_avg | 예 | 글로벌 | 아니오 | |||
Innodb_row_lock_time_max | 예 | 글로벌 | 아니오 | |||
Innodb_row_lock_waits | 예 | 글로벌 | 아니오 | |||
Innodb_rows_deleted | 예 | 글로벌 | 아니오 | |||
Innodb_rows_inserted | 예 | 글로벌 | 아니오 | |||
Innodb_rows_read | 예 | 글로벌 | 아니오 | |||
Innodb_rows_updated | 예 | 글로벌 | 아니오 | |||
innodb_sort_buffer_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_spin_wait_delay | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_stats_auto_recalc | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_stats_method | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_stats_on_metadata | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_stats_persistent | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_stats_persistent_sample_pages | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_stats_sample_pages | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_stats_transient_sample_pages | 예 | 예 | 예 | 글로벌 | 예 | |
innodb-status-file | 예 | 예 | ||||
innodb_status_output | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_status_output_locks | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_strict_mode | 예 | 예 | 예 | 모두 | 예 | |
innodb_support_xa | 예 | 예 | 예 | 모두 | 예 | |
innodb_sync_array_size | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_sync_spin_loops | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_table_locks | 예 | 예 | 예 | 모두 | 예 | |
innodb_thread_concurrency | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_thread_sleep_delay | 예 | 예 | 예 | 글로벌 | 예 | |
Innodb_truncated_status_writes | 예 | 글로벌 | 아니오 | |||
innodb_undo_directory | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_undo_logs | 예 | 예 | 예 | 글로벌 | 예 | |
innodb_undo_tablespaces | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_use_native_aio | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_use_sys_malloc | 예 | 예 | 예 | 글로벌 | 아니오 | |
innodb_version | 예 | 글로벌 | 아니오 | |||
innodb_write_io_threads | 예 | 예 | 예 | 글로벌 | 아니오 | |
timed_mutexes | 예 | 예 | 예 | 글로벌 | 예 | |
unique_checks | 예 | 모두 | 예 |
InnoDB 명령 옵션
--ignore-builtin-innodb
비추천 5.5.22 명령 줄 형식 --ignore-builtin-innodb
시스템 변수 이름 ignore_builtin_innodb
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
MySQL 5.1에서는이 옵션을 사용하면 서버는 내장
InnoDB
가 존재하지 않는 경우와 동일하게 동작 대신InnoDB Plugin
을 사용할 수있었습니다. MySQL 5.6에서InnoDB
가 기본 스토리지 엔진으로 바뀌고InnoDB Plugin
이 사용되지 않기 때문에이 옵션은 유효하지 않습니다. MySQL 5.6.5의 시점에서는 무시됩니다.--innodb [=
value
]비추천 5.6.21 명령 줄 형식 --innodb [= value]
허용되는 값 유형 enumeration
기본 ON
유효한 값 OFF
ON
FORCE
서버가
InnoDB
를 지원하도록 컴파일 된 경우,InnoDB
스토리지 엔진의 부하를 제어합니다. 이 옵션의 형식은 트라이이며, 가능한 값은OFF
,ON
또는FORCE
입니다. 섹션 5.1.8.1 "플러그인 설치 및 제거" 를 참조하십시오.InnoDB
를 비활성화하려면--innodb=OFF
또는--skip-innodb
를 사용합니다. 이 경우 기본 스토리지 엔진은InnoDB
이기 때문에--default-storage-engine
및--default-tmp-storage-engine
을 사용하여 영구 테이블과TEMPORARY
테이블 모두에 대해 디폴트를 다른 엔진으로 설정 하지 않는 한 서버는 시작하지 않습니다.MySQL 5.6.21 시점에서는
--innodb=OFF
및--skip-innodb
옵션이 사용되지 않으며, 사용하면 경고가 발생합니다. 이 옵션은 향후 MySQL 릴리스에서 제거됩니다.--innodb-status-file
명령 줄 형식 --innodb-status-file
허용되는 값 유형 boolean
기본 OFF
InnoDB
가 MySQL 데이터 디렉토리에innodb_status.
라는 파일을 작성할지 여부를 제어합니다. 활성화하면pid
InnoDB
는 정기적으로SHOW ENGINE INNODB STATUS
의 출력을 파일에 기록합니다.이 파일은 기본적으로 생성되지 않습니다. 이를 작성하려면
--innodb-status-file=1
옵션으로 mysqld를 시작합니다. 이 파일은 정상적인 종료시 삭제됩니다.--skip-innodb
InnoDB
스토리지 엔진을 비활성화합니다.--innodb
의 설명을 참조하십시오.
InnoDB 시스템 변수
daemon_memcached_enable_binlog
도입 5.6.6 명령 줄 형식 --daemon_memcached_enable_binlog = #
시스템 변수 이름 daemon_memcached_enable_binlog
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 false
이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.
daemon_memcached_engine_lib_name
도입 5.6.6 명령 줄 형식 --daemon_memcached_engine_lib_name = library
시스템 변수 이름 daemon_memcached_engine_lib_name
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 파일 이름
기본 innodb_engine.so
InnoDB
memcached 플러그인을 구현하는 공유 라이브러리를 지정합니다.이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.
daemon_memcached_engine_lib_path
도입 5.6.6 명령 줄 형식 --daemon_memcached_engine_lib_path = directory
시스템 변수 이름 daemon_memcached_engine_lib_path
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 디렉토리 이름
기본 NULL
InnoDB
memcached 플러그인을 구현하는 공유 라이브러리를 포함하는 디렉토리의 경로입니다. 기본값은 MySQL 플러그인 디렉토리를 나타내는 NULL입니다. MySQL 플러그인 디렉토리 외부에 배치 된 다른 스토리지 엔진memcached
플러그인을 지정하지 않으면이 매개 변수를 변경할 필요가 없을 것입니다.이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.
daemon_memcached_option
도입 5.6.6 명령 줄 형식 --daemon_memcached_option = options
시스템 변수 이름 daemon_memcached_option
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 string
기본 시작할 때 공백 문자로 구분 된 memcached 옵션을 기본이되는 memcached 메모리 개체 캐시 데몬에 전달하는 데 사용됩니다. 예를 들어, memcached가 대기하는 포트를 변경하거나 최대 동시 연결 수를 줄이거 나, 키와 값의 페어의 최대 메모리 크기를 변경하거나 오류 로그에 대한 메시지 디버깅을 활성화 할 수 있습니다.
이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오. memcached의 옵션은 memcached 매뉴얼 페이지를 참조하십시오.
daemon_memcached_r_batch_size
도입 5.6.6 명령 줄 형식 --daemon_memcached_r_batch_size = #
시스템 변수 이름 daemon_memcached_r_batch_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 1
COMMIT
을 실행하고 새로운 트랜잭션을 시작하기 전에 실행되는 memcached 읽기 조작 (get
) 수를 지정합니다.daemon_memcached_w_batch_size
쌍둥이 한쪽입니다.이 값은 SQL 문을 사용하여 테이블에 변경 사항이 즉시 memcached 작업 표시되도록 기본적으로 1로 설정되어 있습니다. 기반이되는 테이블이 memcached 인터페이스에서만 사용되는 시스템에서 자주 커밋 비용을 절감하기 위해이를 확대 할 수 있습니다. 너무 큰 값을 설정하면 Undo 데이터 또는 Redo 데이터의 양에 따라 장기 실행 트랜잭션의 경우와 마찬가지로 일부 스토리지 오버 헤드가 발생할 수 있습니다.
이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.
daemon_memcached_w_batch_size
도입 5.6.6 명령 줄 형식 --daemon_memcached_w_batch_size = #
시스템 변수 이름 daemon_memcached_w_batch_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 1
COMMIT
을 실행하고 새로운 트랜잭션을 시작하기 전에 실행되는 memcached 쓰기 작업 (add
,set
,incr
등)의 수를 지정합니다.daemon_memcached_r_batch_size
대 중 하나입니다.이 값은 저장되는 모든 데이터는 정지에 대비하여 보유하는 것이 중요하며, 즉시 커밋되어야한다는 가정에 따라 기본적으로 1로 설정되어 있습니다. 중요하지 않은 데이터를 저장할 때 자주 커밋 비용을 절감하기 위해이 값을 크게 할 수 있습니다. 그러나 충돌시에 커밋되지 않은 마지막
N
-1 회 쓰기 작업이 손실 될 수 있습니다.이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.
ignore_builtin_innodb
비추천 5.5.22 명령 줄 형식 --ignore-builtin-innodb
시스템 변수 이름 ignore_builtin_innodb
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
이 섹션의 앞부분의 "
InnoDB
명령어 옵션 "아래의--ignore-builtin-innodb
의 설명을 참조하십시오.innodb_adaptive_flushing
명령 줄 형식 --innodb_adaptive_flushing = #
시스템 변수 이름 innodb_adaptive_flushing
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 ON
워크로드에 따라
InnoDB
버퍼 풀 의 더티 페이지 를 플래시하는 비율을 동적으로 조정할지 여부를 지정합니다. 플래시 비율을 동적으로 조정하는 목적은 I / O 활동의 파열을 방지하는 것입니다. 이 설정은 기본적으로 활성화되어 있습니다. 자세한 내용은 섹션 14.13.1.2 "InnoDB 버퍼 풀 플러시 빈도 구성" 을 참조하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.innodb_adaptive_flushing_lwm
도입 5.6.6 명령 줄 형식 --innodb_adaptive_flushing_lwm = #
시스템 변수 이름 innodb_adaptive_flushing_lwm
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 10
최소 0
최대 값 70
적응 형 플래시 가 활성화되어있는 Redo 로그 공간의 비율을 나타내는 하위 경계 값입니다.
innodb_adaptive_hash_index
명령 줄 형식 --innodb_adaptive_hash_index = #
시스템 변수 이름 innodb_adaptive_hash_index
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 ON
InnoDB
적응 형 해시 인덱스 가 유효하지 않을지되어 있는지를 나타냅니다. 워크로드에 따라 적응 형 해시 인덱스의 생성 을 동적으로 활성화 또는 비활성화하여 쿼리 성능을 개선하는 것이 바람직한 경우가 있습니다. 적응 형 해시 인덱스가 모든 워크로드에 도움이 아니기 때문에 현실적인 워크로드를 사용하여 활성화 및 비활성화 모두 벤치 마크를 실시합니다. 자세한 내용은 섹션 14.2.13.6 "적응 형 해시 인덱스" 를 참조하십시오.이 변수는 기본적으로 활성화되어 있습니다.
SET GLOBAL
명령을 사용하면 서버를 다시 시작하지 않고이 매개 변수를 변경할 수 있습니다. 이 설정을 변경하려면SUPER
권한이 필요합니다. 또한 서버를 시작할 때--skip-innodb_adaptive_hash_index
을 사용하면 비활성화 할 수 있습니다.적응 형 해시 인덱스를 비활성화하면 즉시 해시 테이블이 비어 있습니다. 해시 테이블이 비어도 정상 동작을 계속할 수 해시 테이블을 사용하여 실행중인 쿼리 대신 인덱스의 B 트리에 직접 액세스합니다. 적응 형 해시 인덱스를 다시 사용하면 정상 작동시 해시 테이블이 다시 채워집니다.
innodb_adaptive_max_sleep_delay
도입 5.6.3 명령 줄 형식 --innodb_adaptive_max_sleep_delay = #
시스템 변수 이름 innodb_adaptive_max_sleep_delay
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 150000
최소 0
최대 값 1000000
현재의 워크로드에 따라
InnoDB
에 의해 자동으로innodb_thread_sleep_delay
값이 상하로 조정되도록합니다. 0이 아닌 값으로 지정하면 최대innodb_adaptive_max_sleep_delay
옵션으로 지정된 최대 값까지 자동으로innodb_thread_sleep_delay
값의 동적 조정이 이루어집니다. 값은 마이크로 초를 나타냅니다. 이 옵션은InnoDB
쓰레드 수가 16 개를 초과하는 고부하 시스템에서 유용 할 수 있습니다. (사실, 동시 연결 수가 수백 또는 수천된다 MySQL 시스템의 대부분의 변수입니다.)자세한 내용은 섹션 14.13.5 "InnoDB의 스레드 병렬성 구성" 을 참조하십시오.
innodb_additional_mem_pool_size
비추천 5.6.3 명령 줄 형식 --innodb_additional_mem_pool_size = #
시스템 변수 이름 innodb_additional_mem_pool_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 8388608
최소 2097152
최대 값 4294967295
데이터 사전 정보 및 기타 내부 데이터 구조를 포함 할 때에
InnoDB
에서 사용되는 메모리 풀의 크기 (바이트)입니다. 응용 프로그램에 존재하는 테이블 수가 많을수록 여기서 할당 메모리 량도 많아집니다. 이 풀의 메모리가InnoDB
에 의해 소모되면 운영 체제에서 메모리 할당이 시작되고, MySQL 에러 로그에 경고 메시지가 기록됩니다. 기본값은 8M 바이트입니다.이 변수는
InnoDB
내부 메모리 할당에 관련합니다. 이것은innodb_use_sys_malloc
이 활성화되어있는 경우는 사용되지 않습니다. MySQL 5.6.3의 시점에서는innodb_additional_mem_pool_size
는 사용되지 않으며 향후 MySQL 릴리스에서 제거 될 예정입니다.innodb_api_bk_commit_interval
도입 5.6.7 명령 줄 형식 --innodb_api_bk_commit_interval = #
시스템 변수 이름 innodb_api_bk_commit_interval
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 5
최소 1
최대 값 1073741824
InnoDB
memcached 인터페이스가 사용되는 유휴 연결이 자동 확정되는 빈도 (초)입니다. 이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.innodb_api_disable_rowlock
도입 5.6.6 명령 줄 형식 --innodb_api_disable_rowlock = #
시스템 변수 이름 innodb_api_disable_rowlock
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
이 변수를 사용하면
InnoDB
memcached에서 DML 작업이 수행 될 때 행 잠금이 해제됩니다. 기본적으로innodb_api_disable_rowlock
는OFF
로 설정되어 있으며, memcached가 get 및 set 작업 행 잠금을 요청합니다.innodb_api_disable_rowlock
를ON
으로 설정하면 memcached 행 잠금 대신 테이블 잠금을 요청합니다.innodb_api_disable_rowlock
옵션은 동적하지 않습니다. 이것은 mysqld 명령 행에서 지정하거나 MySQL 구성 파일에 입력해야합니다. 구성은 MySQL 서버가 시작될 때마다 할 플러그인을 설치할 때 사용됩니다.innodb_api_enable_binlog
도입 5.6.6 명령 줄 형식 --innodb_api_enable_binlog = #
시스템 변수 이름 innodb_api_enable_binlog
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
MySQL 바이너리 로그 와 함께
InnoDB
memcached 플러그인을 사용할 수 있습니다. 이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.innodb_api_enable_mdl
도입 5.6.6 명령 줄 형식 --innodb_api_enable_mdl = #
시스템 변수 이름 innodb_api_enable_mdl
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
InnoDB
memcached 플러그인에서 사용되는 테이블을 잠급니다. 이렇게하면 SQL 인터페이스에서 DDL 에 의해 삭제 또는 변경할 수 없습니다. 이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오.innodb_api_trx_level
도입 5.6.6 명령 줄 형식 --innodb_api_trx_level = #
시스템 변수 이름 innodb_api_trx_level
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 0
memcached 인터페이스에서 처리 된 쿼리에서 트랜잭션 격리 수준 을 제어 할 수 있습니다. 이 옵션 사용에 대한 자세한 내용은 섹션 14.18 "InnoDB 및 memcached의 통합" 을 참조하십시오. 잘 듣는 이름에 대응하는 정수는 다음과 같습니다.
0 =
READ UNCOMMITTED
1 =
READ COMMITTED
2 =
REPEATABLE READ
3 =
SERIALIZABLE
innodb_autoextend_increment
명령 줄 형식 --innodb_autoextend_increment = #
시스템 변수 이름 innodb_autoextend_increment
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.5) 유형 integer
기본 8
최소 1
최대 값 1000
허용되는 값 (> = 5.6.6) 유형 integer
기본 64
최소 1
최대 값 1000
InnoDB
의 자동 확장 시스템 테이블 스페이스 파일이 꽉 찼을 때 그 크기를 확장 할 때 증분 크기 (M 바이트)입니다. 기본값은 MySQL 5.6.6의 시점에서 64, 그 이전은 8입니다. 이 변수는innodb_file_per_table=1
을 사용하는 경우에 작성되는 테이블마다 테이블 공간 파일은 영향을받지 않습니다.innodb_autoextend_increment
의 값에 관계없이 이러한 파일은 자동 확장됩니다. 확장은 소량으로 시작하여 확장 증분가 4MB에서 발생합니다.innodb_autoinc_lock_mode
명령 줄 형식 --innodb_autoinc_lock_mode = #
시스템 변수 이름 innodb_autoinc_lock_mode
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 1
유효한 값 0
1
2
자동 증가 값을 생성하는 데 사용되는 잠금 모드 입니다. 허용되는 값은 "기존"를 나타내는 0 "연속"을 나타내는 1 또는 「인터리브」을 나타내는 2입니다. 섹션 14.6.5 "InnoDB에서 AUTO_INCREMENT 처리" 에서는 이러한 모드의 특성에 대해 설명합니다.
이 변수의 기본값은 1 ( "연속"잠금 모드)입니다.
innodb_buffer_pool_dump_at_shutdown
도입 5.6.3 명령 줄 형식 --innodb_buffer_pool_dump_at_shutdown = #
시스템 변수 이름 innodb_buffer_pool_dump_at_shutdown
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
다음 재부팅시 워밍업 과정의 시간을 단축하기 위해 MySQL 서버 종료시 InnoDB의 버퍼 풀 에 캐시 된 페이지를 기록할지 여부를 지정합니다. 일반적으로
innodb_buffer_pool_load_at_startup
와 함께 사용됩니다.자세한 내용은 섹션 14.13.1.5 "다시 시작을 가속화하기위한 InnoDB 버퍼 풀의 프리로드" 를 참조하십시오.
innodb_buffer_pool_dump_now
도입 5.6.3 명령 줄 형식 --innodb_buffer_pool_dump_now = #
시스템 변수 이름 innodb_buffer_pool_dump_now
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
InnoDB의 버퍼 풀 에 캐시 된 페이지를 즉시 기록합니다. 일반적으로
innodb_buffer_pool_load_now
와 함께 사용됩니다.자세한 내용은 섹션 14.13.1.5 "다시 시작을 가속화하기위한 InnoDB 버퍼 풀의 프리로드" 를 참조하십시오.
innodb_buffer_pool_filename
도입 5.6.3 명령 줄 형식 --innodb_buffer_pool_filename = file
시스템 변수 이름 innodb_buffer_pool_filename
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 파일 이름
기본 ib_buffer_pool
innodb_buffer_pool_dump_at_shutdown
또는innodb_buffer_pool_dump_now
에서 생성되는 테이블 스페이스 ID 및 페이지 ID의 목록을 포함하는 파일의 이름을 지정합니다. 테이블 스페이스 ID 및 페이지 ID는space, page_id
형식으로 저장됩니다. 기본적으로이 파일은InnoDB
데이터 디렉토리에 배치됩니다.자세한 내용은 섹션 14.13.1.5 "다시 시작을 가속화하기위한 InnoDB 버퍼 풀의 프리로드" 를 참조하십시오.
innodb_buffer_pool_instances
명령 줄 형식 --innodb_buffer_pool_instances = #
시스템 변수 이름 innodb_buffer_pool_instances
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (<= 5.6.5) 유형 integer
기본 1
최소 1
최대 값 64
허용되는 값 (Windows 32 비트 플랫폼,> = 5.6.6) 유형 integer
기본 (autosized)
최소 1
최대 값 64
허용되는 값 (기타> = 5.6.6) 유형 integer
기본 8
최소 1
최대 값 64
InnoDB
의 버퍼 풀 을 분할되는 영역의 수입니다. 버퍼 풀 수 G 바이트의 범위에있는 시스템에 버퍼 풀을 개별 인스턴스로 분할하면 캐시 된 페이지에 다른 스레드가 읽기 및 쓰기를 할 때 충돌이 줄어들 기 때문에 동시성을 향상 경우가 있습니다. 버퍼 풀에 포함되는 각 페이지 또는 버퍼 풀에서 읽고있는 각 페이지는 해시 함수를 사용하여 버퍼 풀 인스턴스 중 하나에 무작위로 할당됩니다. 각 버퍼 풀은 자신의 여유리스트, 플래시 목록 , LRU 및 버퍼 풀에 연결된 다른 모든 데이터 구조를 관리하고 자신의 버퍼 풀 상호 배타 락 에 의해 보호됩니다.이 옵션은
innodb_buffer_pool_size
를 1G 바이트 이상의 크기로 설정 한 경우에만 사용할 수 있습니다. 지정한 총 크기는 모든 버퍼 풀 사이에 분할됩니다. 최고의 효율을 얻기 위해서는innodb_buffer_pool_instances
과innodb_buffer_pool_size
의 조합을 각 버퍼 풀 인스턴스가 적어도 1G 바이트가되도록 지정합니다.MySQL 5.6.6 이전에는, 기본값은 1입니다. MySQL 5.6.6의 시점에서는 기본값은 8입니다. 그러나 32 비트 Windows 시스템에서는 기본적는
innodb_buffer_pool_size
값에 따라 달라집니다.innodb_buffer_pool_size
이 1.3G 바이트보다 큰 경우innodb_buffer_pool_instances
의 기본이innodb_buffer_pool_size
/ 128M 바이트입니다 청크에 대해 별도의 메모리 할당 요청을가집니다. 32 비트 Windows에서 단일 버퍼 풀에 필요한 연속적인 주소 공간을 할당 할 수 없다는 심각한 위험이 존재하는 경계로서 1.3G 바이트가 선택되었습니다.그렇지 않으면 기본값은 1입니다.
innodb_buffer_pool_load_abort
도입 5.6.3 명령 줄 형식 --innodb_buffer_pool_load_abort = #
시스템 변수 이름 innodb_buffer_pool_load_abort
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
innodb_buffer_pool_load_at_startup
또는innodb_buffer_pool_load_now
에서 트리거되는 InnoDB의 버퍼 풀 의 내용을 복원하는 프로세스를 중단합니다.자세한 내용은 섹션 14.13.1.5 "다시 시작을 가속화하기위한 InnoDB 버퍼 풀의 프리로드" 를 참조하십시오.
innodb_buffer_pool_load_at_startup
도입 5.6.3 명령 줄 형식 --innodb_buffer_pool_load_at_startup = #
시스템 변수 이름 innodb_buffer_pool_load_at_startup
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
MySQL 서버 시작시 이전에 보유 된 것과 동일한 페이지를로드하는 것으로, InnoDB의 버퍼 풀 을 자동으로 예열 되도록 지정합니다. 일반적으로
innodb_buffer_pool_dump_at_shutdown
와 함께 사용됩니다.자세한 내용은 섹션 14.13.1.5 "다시 시작을 가속화하기위한 InnoDB 버퍼 풀의 프리로드" 를 참조하십시오.
innodb_buffer_pool_load_now
도입 5.6.3 명령 줄 형식 --innodb_buffer_pool_load_now = #
시스템 변수 이름 innodb_buffer_pool_load_now
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
서버를 다시 시작 기다리지 않고 데이터 페이지 세트를로드하는 것으로, InnoDB의 버퍼 풀 을 즉시 워밍업 합니다. 벤치 마크시 캐시 메모리를 알려진 상태로 되돌 리거나 보고서 및 유지 보수를 위해 쿼리를 실행 한 후, MySQL 서버의 정상적인 작업을 재개 준비를 할 때 도움이됩니다.
자세한 내용은 섹션 14.13.1.5 "다시 시작을 가속화하기위한 InnoDB 버퍼 풀의 프리로드" 를 참조하십시오.
innodb_buffer_pool_size
명령 줄 형식 --innodb_buffer_pool_size = #
시스템 변수 이름 innodb_buffer_pool_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (32 비트 플랫폼) 유형 integer
기본 134217728
최소 5242880
최대 값 2 ** 32-1
허용되는 값 (64 비트 플랫폼) 유형 integer
기본 134217728
최소 5242880
최대 값 2 ** 64-1
InnoDB
테이블 및 인덱스의 데이터를 캐시하는 메모리 영역 인 버퍼 풀 의 크기 (바이트)입니다. 기본값은 128M 바이트입니다. 최대 값은 CPU 아키텍처에 따라 다릅니다. 최대 값은 32 비트 시스템에서 4294967295 (2 32 -1) 64 비트 시스템에서는 18446744073709551615 (2 64 -1)입니다. 32 비트 시스템에서는 CPU 아키텍처와 운영 체제에 지정된 최대 값보다 작은 실용적인 최대 크기가 부과 될 수 있습니다. 버퍼 풀의 크기가 1G 바이트보다 큰 경우innodb_buffer_pool_instances
를 1보다 큰 값으로 설정하면 고부하의 서버에서 확장 성을 개선 할 수 있습니다.이 값을 크게 설정할수록 테이블에서 동일한 데이터를 여러 번 액세스하는 데 필요한 디스크 I / O가 줄어 듭니다. 전용 데이터베이스 서버에서는이를 최대 컴퓨터의 실제 메모리 크기의 80 %까지 설정할 수 있습니다.다음과 같은 기타 문제가 발생했을 경우,이 값이 작을 준비를하십시오.
실제 메모리가 충돌하면 운영 체제에서 페이징이 발생할 수 있습니다.
InnoDB
는 할당 된 영역의 합계가 지정된 크기보다 약 10 % 커지도록 버퍼 및 제어 구조에 추가 메모리가 예약되어 있습니다.주소 공간은 인접 해있는 연꽃입니다. 따라서 Windows 시스템에서 특정 주소에로드하는 DLL 문제가 발생할 수 있습니다.
버퍼 풀을 초기화하는 시간은 거의 그 크기에 비례합니다. 대규모 설치에서는이 초기화 시간이 중요한 경우도 있습니다. 예를 들어, 최신의 Linux x86_64 서버에 10G 바이트의 버퍼 풀을 초기화하려면 약 6 초 정도 걸립니다. 섹션 8.9.1 "InnoDB 버퍼 풀" 을 참조하십시오.
innodb_change_buffer_max_size
도입 5.6.2 명령 줄 형식 --innodb_change_buffer_max_size = #
시스템 변수 이름 innodb_change_buffer_max_size
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 25
최소 0
최대 값 50
버퍼 풀 의 전체 크기의 백분율로 나타낸, InnoDB의 변경 버퍼 의 최대 크기입니다. 이 값은 MySQL 서버에 자주 삽입, 업데이트 및 삭제 활동이 발생하는 경우는 크게하고 MySQL 서버에서 보고서에 사용되는 데이터가 변경되지 않는 경우는 작게하면 좋을 것입니다. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_change_buffering
명령 줄 형식 --innodb_change_buffering = #
시스템 변수 이름 innodb_change_buffering
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 enumeration
기본 all
유효한 값 inserts
deletes
purges
changes
all
none
InnoDB
가 버퍼링 변경 (I / O 작업을 연속적으로 수행 할 수 있도록 보조 인덱스에 쓰기 작업을 지연시키는 최적화)를 실행할지 여부를 지정합니다. 허용되는 값은inserts
(삽입 작업 버퍼링)deletes
(삭제 작업 버퍼링 엄밀히 말하면, 제거 작업시 이후에 삭제하는 인덱스 레코드에 표시를 기입)changes
(삽입 조작 및 삭제 표시 작업 버퍼링)purges
( 퍼지 작업 버퍼링 삭제 된 인덱스 항목의 가비지 컬렉션을 마지막으로 실행되는 쓰기)all
(삽입, 삭제 표시, 제거 작업 버퍼링) 및none
(조작 버퍼링 없음)입니다. 기본값은all
입니다. 자세한 내용은 섹션 14.13.4 "InnoDB 변경 버퍼링 구성" 을 참조하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.innodb_checksum_algorithm
도입 5.6.3 명령 줄 형식 --innodb_checksum_algorithm = #
시스템 변수 이름 innodb_checksum_algorithm
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.5) 유형 enumeration
기본 innodb
유효한 값 innodb
crc32
none
strict_innodb
strict_crc32
strict_none
허용되는 값 (5.6.6) 유형 enumeration
기본 crc32
유효한 값 innodb
crc32
none
strict_innodb
strict_crc32
strict_none
허용되는 값 (> = 5.6.7) 유형 enumeration
기본 innodb
유효한 값 innodb
crc32
none
strict_innodb
strict_crc32
strict_none
InnoDB
의 각 테이블 공간 의 각 디스크 블록에 저장되어있는 체크섬 을 생성 및 검증하는 방법을 지정합니다.MySQL 5.6.3의 시점에서
innodb_checksums
옵션은innodb_checksum_algorithm
로 대체했습니다. 다음 값은 호환성을 위해 제공되고 있습니다.innodb_checksum_algorithm = innodb
는innodb_checksums = ON
과 같습니다.innodb_checksum_algorithm = none
은innodb_checksums = OFF
와 동일합니다.
충돌을 방지하려면 구성 파일 및 MySQL 시작 스크립트에서
innodb_checksums
에 대한 참조를 제거합니다.값
innodb
는 모든 MySQL 버전과의 호환성이 있습니다. 값crc32
에서는 더 빠르게, 변경된 모든 블록의 체크섬을 계산하고 디스크 읽기마다 체크섬을 검사하는 알고리즘이 사용됩니다. 값none
에서는 블록 데이터에 따라 값이 계산되는 것이 아니라 체크섬 필드에 상수 값이 기록됩니다. 테이블 스페이스 내의 블록은 이전 값 새 값 및 체크섬없이 값을 혼합하여 사용할 수 있으며 데이터가 업데이트되면서 점차 업데이트됩니다. 테이블 스페이스 내의 블록이crc32
알고리즘을 사용하도록 변경된 후에는 관련된 테이블을 이전 버전의 MySQL에서 읽을 수 없습니다.strict_ *
형식의 기능은innodb
,crc32
및none
과 동일합니다. 그러나InnoDB
는 같은 테이블 스페이스에서 체크섬 값의 혼합이 발생한 경우 중지합니다. 이 옵션을 완전히 새로운 인스턴스에서 사용하는 것만으로, 처음이라도 모든 테이블 공간을 설정할 수 있습니다.strict_ *
설정에서 디스크를 읽을 때 새로운 체크섬 값과 이전 체크섬 값을 모두 받아들이 기 위하여 그 모두를 계산할 필요가 없기 때문에 다소 빨라집니다.다음 표는
none
,innodb
,crc32
옵션 값 및 각각에 대응하는strict_
옵션 값 사이의 차이점을 보여줍니다.none
,innodb
및crc32
는 특정 유형의 체크섬 값이 각 데이터 블록에 기록되지만 호환성을 유지하기 위해 읽기 작업 중에 블록을 검증 할 때 다른 체크섬 값 중 또는이 허용됩니다.strict_
형식 매개 변수는 1 종류의 체크섬 만 인식됩니다. 이렇게하면 검증이 빨라집니다 만, 인스턴스의 모든InnoDB
데이터 파일이 같은innodb_checksum_algorithm
값으로 생성 될 필요가 있습니다.표 14.7 innodb_checksum_algorithm에서 허용하는 설정
값 생성되는 체크섬 (기입시) 허용되는 체크섬 (읽기시) none 상수. none
,innodb
또는crc32
에서 생성되는 체크섬 중 하나.innodb 소프트웨어 InnoDB
의 원래 알고리즘을 사용하여 계산 된 체크섬.none
,innodb
또는crc32
에서 생성되는 체크섬 중 하나.crc32 crc32
알고리즘을 사용하여 계산 된 체크섬 (하드웨어의 지원을 받아 수행 될 가능성도 있습니다).none
,innodb
또는crc32
에서 생성되는 체크섬 중 하나.strict_none 상수 none
에서 생성되는 체크섬 만.strict_innodb 소프트웨어 InnoDB
의 원래 알고리즘을 사용하여 계산 된 체크섬.innodb
에서 생성되는 체크섬 만.strict_crc32 crc32
알고리즘을 사용하여 계산 된 체크섬 (하드웨어의 지원을 받아 수행 될 가능성도 있습니다).crc32
에서 생성되는 체크섬 만.innodb_checksum_algorithm
의 기본값은 MySQL 5.6.6에서innodb
에서crc32
변경되었지만 이전의 MySQL 버전으로 다운 그레이드중인InnoDB
데이터 파일의 호환성 향상을 위해, 그리고 MySQL Enterprise Backup 에서 사용하기 위해 5.6 .7에서innodb
로 리턴되었습니다. 검출 된 제한에는 다음이 포함됩니다.CRC32 체크섬을 포함
.ibd
파일은 5.6.3 이전의 MySQL 버전으로 다운 그레이드하는 동안 문제가 발생할 수 있습니다. MySQL 5.6.3 이후에는 디스크에서 블록을 읽을 때 해당 블록의 새로운 체크섬 값과 이전 체크섬 값을 모두 올바른 인식합니다. 이에 따라 알고리즘의 설정에 관계없이 업그레이드 및 다운 그레이드 중에 데이터 블록의 호환성을 보장합니다. 새로운 체크섬 값으로 기록 된 데이터가 5.6.3 이전 수준의 MySQL에 의해 처리 된 경우 손상된 것처럼보고 될 수 있습니다.3.8.0 이전 버전의 MySQL Enterprise Backup 은 CRC32 체크섬을 사용하는 테이블 스페이스의 백업을 지원하지 않습니다. MySQL Enterprise Backup 은 CRC32 체크섬 지원을 3.8.1에서 (일부 제한 사항) 추가하고 있습니다. 자세한 내용은 MySQL Enterprise Backup 3.8.1의 변경 내용을 참조하십시오.
crc32
체크섬 알고리즘에 대한 자세한 내용은 섹션 14.13.15 "체크섬의 고속화를위한 CRC32 체크섬 알고리즘의 사용" 을 참조하십시오.innodb_checksums
비추천 5.6.3 명령 줄 형식 --innodb_checksums
시스템 변수 이름 innodb_checksums
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 ON
InnoDB
는 디스크에서 읽은 모든 테이블 스페이스 페이지에서 체크섬 검증을 사용하여 하드웨어 장애 나 데이터 파일의 손상에 대한 추가적인 내결함성을 제공 할 수 있습니다. 이 검증은 기본적으로 활성화되어 있습니다. 특수한 상황 (벤치 마크 실행시 등)에서는이 같은 추가 안전 기능은--skip-innodb-checksums
을 사용하여 해제 할 수 있습니다.innodb_checksum_algorithm
을 사용하면 체크섬을 계산하는 방법을 지정할 수 있습니다.MySQL 5.6.3 이후에서는이 옵션은 사용되지 않으며,
innodb_checksum_algorithm
로 대체했습니다.innodb_checksum_algorithm = innodb
는innodb_checksums = ON
(기본값)와 동일합니다.innodb_checksum_algorithm = none
은innodb_checksums = OFF
와 동일합니다.innodb_checksum_algorithm
과의 충돌을 방지하기 위해 구성 파일 및 시작 스크립트에서 모든innodb_checksums
옵션을 제거하십시오.innodb_checksums = OFF
에 의해 자동으로innodb_checksum_algorithm = none
이 설정되어innodb_checksums = ON
은 무시되고innodb_checksum_algorithm
의 기타 설정을 다시 정의됩니다.innodb_cmp_per_index_enabled
도입 5.6.7 명령 줄 형식 --innodb_cmp_per_index_enabled = #
시스템 변수 이름 innodb_cmp_per_index_enabled
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
유효한 값 OFF
ON
INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX
테이블에서 인덱스 당 압축 관련 통계를 사용합니다. 이러한 통계를 수집하면 부하가 높아지기 때문에이 옵션은InnoDB
의 압축 된 테이블에 대한 성능 튜닝시에 개발, 테스트 또는 슬레이브 인스턴스에서만 사용하십시오.innodb_commit_concurrency
명령 줄 형식 --innodb_commit_concurrency = #
시스템 변수 이름 innodb_commit_concurrency
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 0
최소 0
최대 값 1000
동시에 커밋 할 스레드 의 수입니다. 값을 0 (기본값)하면 임의의 수의 트랜잭션 을 동시에 커밋이 허용됩니다.
innodb_commit_concurrency
값은 런타임에 제로에서 0이 아닌 (또는 그 반대)로 변경할 수 없습니다. 0이 아닌 값에서 다른 0이 아닌 값으로 변경 할 수 있습니다.innodb_compression_failure_threshold_pct
도입 5.6.7 명령 줄 형식 --innodb_compression_failure_threshold_pct = #
시스템 변수 이름 innodb_compression_failure_threshold_pct
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 5
최소 0
최대 값 100
고부하에서의 압축 실패 를 방지하기 위해 압축 된 페이지의 패딩 추가가 MySQL에서 시작되는 컷오프 포인트를 설정합니다. 값을 0으로하면 압축의 효율성을 모니터하는 기능이 비활성화되어 패딩의 양을 동적으로 조정됩니다.
innodb_compression_level
도입 5.6.7 명령 줄 형식 --innodb_compression_level = #
시스템 변수 이름 innodb_compression_level
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 6
최소 0
최대 값 9
InnoDB
의 압축 된 테이블 및 인덱스에 사용 된 zlib 압축 수준을 지정합니다.innodb_compression_pad_pct_max
도입 5.6.7 명령 줄 형식 --innodb_compression_pad_pct_max = #
시스템 변수 이름 innodb_compression_pad_pct_max
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 50
최소 0
최대 값 75
압축 된 각 페이지 의 공간으로 예약 할 수있는 최대 비율을 지정합니다. 이는 압축 된 테이블 또는 인덱스가 업데이트 된 데이터가 다시 압축 될 가능성이있을 때, 페이지의 데이터 및 변경 로그를 재구성 할 여지를 얻을 수 있습니다.
innodb_compression_failure_threshold_pct
가 0이 아닌 값으로 설정되어 압축 오류 의 비율이 컷오프 포인트를 초과하는 경우에만 적용됩니다.innodb_concurrency_tickets
명령 줄 형식 --innodb_concurrency_tickets = #
시스템 변수 이름 innodb_concurrency_tickets
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.5) 유형 integer
기본 500
최소 1
최대 값 4294967295
허용되는 값 (> = 5.6.6) 유형 integer
기본 5000
최소 1
최대 값 4294967295
동시에
InnoDB
에 들어갈 수있는 스레드 의 수를 결정합니다. 스레드가InnoDB
에 들어 가려고 할 때 이미 스레드가 병렬 실행 제한에 도달하는 경우, 그 thread가 큐에 배치됩니다. 스레드가InnoDB
에 들어갈 수 허용되는 경우innodb_concurrency_tickets
값에 동일한 수의 " 여유 티켓 " 이 부여 된 스레드는 그 티켓을 다 떨어질 때까지 자유롭게InnoDB
에 출입 할 수 있습니다. 그 이후에는 스레드가 다음InnoDB
에 들어 가려고 할 때 다시 병렬 실행 검사 대상이됩니다 (큐에 들어갈 대상이 될 가능성도 있습니다). 기본값은 MySQL 5.6.6의 시점에서는 5000 그보다 앞에서는 500입니다.innodb_concurrency_tickets
값을 작게하면 두 줄 밖에 처리 할 필요가없는 소규모 거래와 다수의 행을 처리하는 대규모 트랜잭션이 충돌 할 가능성이 높아집니다.innodb_concurrency_tickets
값을 작게하면 단점은 대규모 트랜잭션이 완료 될 때까지 여러 번 큐 사이를 반복 할 필요가 있기 때문에 작업을 완료하는 데 필요한 시간이 길어지는 점입니다.innodb_concurrency_tickets
값을 크게하면 대규모 트랜잭션 (innodb_thread_concurrency
로 제어되는) 큐의 끝에 위치를 기다리는 시간이 단축되고 행을 검색하는 시간이 길어집니다. 또한 대규모 트랜잭션은 작업을 완료하는 데 필요한 큐 사이의 이동도 줄어 듭니다.innodb_concurrency_tickets
값을 크게하는 단점은 동시에 실행하는 대규모 트랜잭션의 수가 매우 많아지는 것으로, 소규모 트랜잭션이 실행될 때까지의 대기 시간이 길기 때문에 고갈 될 수 있다는 것이다 .innodb_thread_concurrency
값을 제로 이외하면 대규모 트랜잭션 및 소규모 트랜잭션 사이의 적절한 균형을 찾기 위해innodb_concurrency_tickets
값을 상하로 조정해야하는 경우가 있습니다.SHOW ENGINE INNODB STATUS
보고서는 대기열을 통과하는 현재 실행중인 트랜잭션에 남아있는 티켓의 수가 표시됩니다. 이 데이터는INFORMATION_SCHEMA.INNODB_TRX
테이블TRX_CONCURRENCY_TICKETS
컬럼에서 얻을 수 있습니다.자세한 내용은 섹션 14.13.5 "InnoDB의 스레드 병렬성 구성" 을 참조하십시오.
innodb_data_file_path
명령 줄 형식 --innodb_data_file_path = name
시스템 변수 이름 innodb_data_file_path
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (<= 5.6.6) 유형 string
기본 ibdata1 : 10M : autoextend
허용되는 값 (> = 5.6.7) 유형 string
기본 ibdata1 : 12M : autoextend
InnoDB
의 각 데이터 파일 의 경로와 그 크기입니다. 각 데이터 파일의 전체 디렉토리 경로는 여기에 지정된 각 경로에innodb_data_home_dir
을 결합하여 형성됩니다. 크기 값에K
,M
또는G
를 추가하여 파일 크기가 K 바이트 M 바이트 또는 G 바이트 (1024M 바이트)로 지정됩니다. 데이터 파일의 크기를 킬로바이트 (K 바이트)로 지정하는 경우는 1024의 배수로 지정하십시오. 그렇지 않으면, K 바이트 값은 가장 가까운 메가 바이트 (M 바이트)의 경계에서 반올림됩니다. 파일 크기의 합은 약간 10M 바이트를 초과하는 크기로해야합니다.innodb_data_file_path
를 지정하지 않으면 기본 동작에ibdata1
라는 하나의 자동 확장 데이터 파일이 12M 바이트를 조금 웃도는 크기로 만들어집니다. 각 파일의 크기 제한은 운영 체제에 의해 결정됩니다. 큰 파일을 지원하는 운영 체제는 4G 바이트보다 큰 파일 크기를 설정할 수 있습니다. 데이터 파일로 원시 디스크 파티션을 사용할 수 있습니다.InnoDB
의 테이블 공간 파일 구성에 대한 자세한 내용은 섹션 14.3 "InnoDB 구성" 을 참조하십시오.innodb_data_home_dir
명령 줄 형식 --innodb_data_home_dir = path
시스템 변수 이름 innodb_data_home_dir
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 디렉토리 이름
시스템 테이블 스페이스 내의 모든
InnoDB
의 데이터 파일 의 디렉토리 경로에 공통되는 부분입니다. 이 설정은innodb_file_per_table
를 활성화했을 때 file-per-table 테이블 공간의 위치는 영향을받지 않습니다. 기본값은 MySQL의data
디렉토리입니다. 값을 빈 문자열로 지정한 경우innodb_data_file_path
에서 전체 파일 경로를 사용할 수 있습니다.innodb_disable_sort_file_cache
도입 5.6.4 명령 줄 형식 --innodb_disable_sort_file_cache = #
시스템 변수 이름 innodb_disable_sort_file_cache
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
이 변수를 사용하면 병합 정렬 임시 파일 용 운영 체제 파일 시스템 캐시가 해제됩니다. 그 결과 이러한 파일이
O_DIRECT
의 동등한 함께 열립니다. 이 변수는 MySQL 5.6.4에서 추가되었습니다.innodb_doublewrite
명령 줄 형식 --innodb-doublewrite
시스템 변수 이름 innodb_doublewrite
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 ON
이 변수를 사용하면 (기본값),
InnoDB
에 모든 데이터가 2 회 (첫째 이중 쓰기 버퍼 다음 실제 데이터 파일 에) 저장됩니다. 데이터의 무결성과 실패의 가능성에 대한 우려보다 벤치마킹과 최고의 성능이 필요한 경우에는--skip-innodb_doublewrite
를 사용하면이 변수를 비활성화 할 수 있습니다.innodb_fast_shutdown
명령 줄 형식 --innodb_fast_shutdown [= #]
시스템 변수 이름 innodb_fast_shutdown
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 1
유효한 값 0
1
2
InnoDB
의 종료 모드입니다. 이 값을 0으로하면InnoDB
는 저속 종료 완전한 제거 및 삽입 버퍼 병합을 실행 한 후 종료합니다. 이 값을 1 (기본값)하면InnoDB
는 종료 될 때 이러한 작업을 생략합니다. 이 과정은 빠른 종료 라고합니다. 이 값을 2로하면InnoDB
는 MySQL이 충돌 한 경우와 마찬가지로 로그를 플러시 콜드 종료를 수행합니다. 커밋되지 않은 트랜잭션은 손실되지 않지만, 충돌 복구 작업을 통해 다음 부팅 시간이 길어집니다.저속 종료하는 데 몇 분 정도 걸릴 수 있으며 대량의 데이터가 버퍼에 존재하는 극단적 인 경우에는 몇 시간이 걸릴 수도 있습니다. MySQL의 주요 릴리즈로 업그레이드하거나 다운 그레이드하기 전에 업그레이드 프로세스에 의해 파일 형식이 업데이트 될 경우에 대비하여 모든 데이터 파일이 완전히 준비 될 수 있도록 저속 종료 기술을 사용하여 바랍니다.
데이터가 손상 될 위험이있는 경우에 완전한 빠른 종료하려면, 비상 사태 또는 문제 해결 상황에서
innodb_fast_shutdown = 2
를 사용하십시오.innodb_file_format
명령 줄 형식 --innodb_file_format = #
시스템 변수 이름 innodb_file_format
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
기본 Antelope
유효한 값 Antelope
Barracuda
새로운
InnoDB
테이블에서 사용되는 파일 형식 입니다. 현재는Antelope
및Barracuda
을 지원하고 있습니다. 이것은 자신의 테이블 공간 을 가진 테이블에만 적용되기 때문에이를 활성화하려면innodb_file_per_table
가 활성화되어 있어야합니다. 테이블의 압축 등의 특정 InnoDB 기능을 사용하려면 Barracuda 파일 형식이 필요합니다.InnoDB
테이블 (ALGORITHM = COPY
)을 다시 만들ALTER TABLE
작업은 현재innodb_file_format
설정이 사용된다 (전술 상황이 적용되는) 유의하십시오.innodb_file_format_check
명령 줄 형식 --innodb_file_format_check = #
시스템 변수 이름 innodb_file_format_check
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 ON
이 변수를 서버를 시작할 때 1 또는 0으로 설정하면
InnoDB
가 시스템 테이블 스페이스 의 파일 형식 태그 (Antelope
과Barracuda
등)을 확인할지 여부를 설정하거나 해제 할 수 있습니다. 체크 된 태그가 최신 버전의InnoDB
에서 지원되는보다 큰 경우 오류가 발생하고InnoDB
는 시작되지 않습니다. 이 태그 분들이 크지 않은 경우는,InnoDB
에 의해innodb_file_format_max
값이 파일 형식 태그에 설정됩니다.참고기본값이
ON
또는OFF
로 표시 될 수 있음에도 불구하고,이 옵션을 구성 파일이나 명령 행에서 켜거나 끄려면 숫자는 항상 1 또는 0을 사용합니다.innodb_file_format_max
명령 줄 형식 --innodb_file_format_max = #
시스템 변수 이름 innodb_file_format_max
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
기본 Antelope
유효한 값 Antelope
Barracuda
서버가 시작될 때
InnoDB
에 의해이 변수의 값이 시스템 테이블 공간 의 파일 형식 태그 (Antelope
과Barracuda
)으로됩니다. 서버에서 " 큰 " 파일 형식의 테이블이 생성되거나 열리거나하면innodb_file_format_max
값이 파일 형식으로 설정됩니다.innodb_file_per_table
명령 줄 형식 --innodb_file_per_table
시스템 변수 이름 innodb_file_per_table
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.5) 유형 boolean
기본 OFF
허용되는 값 (> = 5.6.6) 유형 boolean
기본 ON
innodb_file_per_table
이 활성화되고있다 (5.6.6 이상 기본) 경우InnoDB
는 새롭게 생성 된 각 테이블의 데이터 및 인덱스 시스템 테이블 공간이 아닌 개별.ibd
파일 에 저장됩니다. 이InnoDB
테이블의 스토리지 테이블이 삭제되거나 잘린거나하면 재사용됩니다. 이렇게 설정하면 테이블의 압축 등의 기타 여러InnoDB
기능이 활성화됩니다. 이러한 기능 및 file-per-table 테이블 공간을 사용하는 장점 및 단점에 대한 자세한 내용은 섹션 14.5.2 "InnoDB File-Per-Table 모드" 를 참조하십시오.ALTER TABLE
로 테이블을 재 작성되는 경우 (ALGORITHM = COPY
)에서innodb_file_per_table
를 활성화하는 것은ALTER TABLE
조작에 의해InnoDB
테이블이 시스템 테이블 스페이스에서 개별.ibd
파일로 이동하는 것을 의미하는 주의하십시오.innodb_file_per_table
을 해제하면InnoDB
는 모든 테이블 및 인덱스에 대한 데이터가 시스템 테이블 스페이스 를 구성하는 ibdata 파일 에 저장됩니다. 이렇게 설정하면DROP TABLE
이나TRUNCATE TABLE
등의 작업에서 파일 시스템 작업의 성능 오버 헤드가 감소됩니다. 이것은 저장 장치 전체가 MySQL 데이터 전용 된 서버 환경에 적합하다. 시스템 테이블 공간은 축소되지 않고 인스턴스 의 모든 데이터베이스에서 공유되지 않기 때문에,innodb_file_per_table = OFF
의 경우 공간이 제약 된 시스템에서 임시 데이터를 대량으로로드하는 것은 피하십시오. 이러한 경우 공간을 확보하기 위해 전체 인스턴스를 제거 할 수 있도록 별도의 인스턴스를 설정합니다.MySQL 5.6.6의 시점에서는 기본적으로
innodb_file_per_table
이 활성화되어 있습니다. 그 이전은 무효가되어 있습니다. MySQL 5.5 또는 5.1과의 하위 호환성이 우려 사항이있는 경우이를 해제하는 것을 고려하십시오. 이렇게하면ALTER TABLE
에 의해InnoDB
테이블이 시스템 테이블 스페이스에서 개별.ibd
파일로 이동하는 것이 방지됩니다.innodb_file_per_table
는 동적이며SET GLOBAL
을 사용하여ON
또는OFF
로 설정할 수 있습니다. 이 매개 변수는 MySQL 구성 파일 (my.cnf
또는my.ini
) 설정할 수 있지만이를 위해서는 서버를 종료 한 후 다시 시작해야합니다.이 매개 변수의 값을 동적으로 변경하려면
SUPER
권한이 필요합니다. 동적으로 변경하면 모든 연결 작업이 즉시 영향을받습니다.innodb_flush_log_at_timeout
도입 5.6.6 시스템 변수 이름 innodb_flush_log_at_timeout
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 1
최소 1
최대 값 2700
로그를
N
초마다 기록하여 플래시합니다.innodb_flush_log_at_timeout
은 MySQL 5.6.6에서 도입되었습니다. 플래시를 줄이고 바이너리 로그 그룹 커밋시의 성능에 미치는 영향을 방지하기 위해 플래시 사이의 시간 초과 기간을 길게 할 수 있습니다. MySQL 5.6.6 이전에서는 플래시의 빈도는 1 초마다 1 번이었습니다.innodb_flush_log_at_timeout
의 기본 설정 1 초마다 1 회입니다.innodb_flush_log_at_trx_commit
명령 줄 형식 --innodb_flush_log_at_trx_commit [= #]
시스템 변수 이름 innodb_flush_log_at_trx_commit
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 enumeration
기본 1
유효한 값 0
1
2
커밋 조작에 대한 엄격한 ACID 준수와 커밋 관련 I / O 작업이 재구성 및 일괄 처리 될 때 실현 가능한 높은 성능 간의 균형을 제어합니다. 기본값을 변경하면 성능을 향상시킬 수 있지만, 충돌시 트랜잭션이 최대 1 초 동안 손실 될 수 있습니다.
완전히 ACID 준수를 수행하려면 기본값 1을 사용해야합니다. 이 값을 사용하면 트랜잭션 커밋 때마다
InnoDB
의 로그 버퍼 의 내용이 로그 파일 에 기록 된 로그 파일이 디스크에 플래시 됩니다.값을 0으로하면 약 1 초마다 1 회,
InnoDB
로그 버퍼의 내용이 로그 파일에 기록 된 로그 파일이 디스크에 플래시됩니다. 로그 버퍼에서 로그 파일에 기록 트랜잭션 커밋시에는 실행되지 않습니다. 프로세스 스케줄링의 문제로 인해 1 초마다 1 회 플래시가 초당 발생하는 100 % 보장은 없습니다. 디스크 연산에 대한 플러시는 약 1 초마다 1 회 밖에 발생하지 않기 때문에 모든 mysqld 프로세스가 충돌하면 트랜잭션이 최대 1 초 동안 손실 될 수 있습니다.값을 2로하면 트랜잭션 커밋 때마다
InnoDB
로그 버퍼의 내용이 로그 파일에 기록되고 약 1 초마다 1 번 로그 파일이 디스크에 플래시됩니다. 프로세스 스케줄링의 문제로 인해 1 초마다 1 회 플래시가 초당 발생하는 100 % 보장은 없습니다. 디스크 연산에 대한 플러시는 약 1 초마다 1 회 밖에 발생하지 않기 때문에 운영 체제가 충돌하거나 정전이 발생하거나하면 트랜잭션이 최대 1 초 동안 손실 될 수 있습니다.MySQL 5.6.6의 시점에서는
InnoDB
의 로그 플러시 빈도가innodb_flush_log_at_timeout
에서 제어됩니다. 이렇게하면 로그 플러시 빈도를N
초에 설정할 수 있습니다 (여기서N
은1 ... 2700
에서 기본값은 1입니다). 그러나 모든 mysqld 프로세스가 충돌하면 트랜잭션이 최대N
초간 손실 될 수 있습니다.innodb_flush_log_at_trx_commit
의 설정과는 관계없이 DDL 변경 및 기타InnoDB
활동을 통해InnoDB
로그가 플래시됩니다.InnoDB
의 충돌 복구 는innodb_flush_log_at_trx_commit
의 설정에 관계없이 작동합니다. 트랜잭션은 완전히 적용되거나 완전히 지우거나 중 하나입니다.
트랜잭션에서
InnoDB
가 사용되는 복제 설정의 지속성과 일관성을 유지 경우 :바이너리 로깅이 활성화되어 있다면,
sync_binlog = 1
을 설정합니다.항상
innodb_flush_log_at_trx_commit = 1
을 설정합니다.
주의많은 운영 체제와 일부 디스크 하드웨어는 디스크에 플래시 작업을 행했다고 속이고 있습니다. 플래시가 이루어없이 이루어 졌다고 mysqld 에 통지 할 수 있습니다. 따라서 1을 설정해도 트랜잭션의 지속성이 보장되지 않고, 최악의 경우, 정전으로
InnoDB
의 데이터가 손상 될 가능성도 있습니다. 배터리 백업 디스크 캐시를 SCSI 디스크 컨트롤러와 디스크 자체에서 사용하면 파일 플래시가 빨라 작업이 안전합니다. 하드웨어 캐시에서 디스크 쓰기 캐시를 비활성화하기 위해 Unix 명령 hdparm 을 사용하여보고, 하드웨어 벤더 고유의 추가 명령을 사용 할 수 있습니다.innodb_flush_method
명령 줄 형식 --innodb_flush_method = name
시스템 변수 이름 innodb_flush_method
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (Unix <= 5.6.6) 유형 string
기본 fsync
유효한 값 fsync
O_DSYNC
O_DIRECT
허용되는 값 (Unix,> = 5.6.7) 유형 string
기본 fsync
유효한 값 fsync
O_DSYNC
O_DIRECT
O_DIRECT_NO_FSYNC
허용되는 값 (Windows) 유형 string
기본 async_unbuffered
InnoDB
의 데이터 파일 과 로그 파일 에 데이터를 플래시 하는 데 사용되는 방법을 정의합니다. 이렇게하면 I / O 처리량에 영향을 줄 수 있습니다. 이 변수는 Unix 및 Linux 시스템에서만 구성 할 수 있습니다. Windows 시스템에서는 플래시 방법은 항상async_unbuffered
이며 변경할 수 없습니다.innodb_flush_method
옵션의 내용은 다음과 같습니다.fsync
:InnoDB
는fsync ()
시스템 호출을 사용하여 데이터 파일과 로그 파일을 플러시합니다.fsync
은 기본 설정입니다.O_DSYNC
:InnoDB
는O_SYNC
를 사용하여 로그 파일을 열고 플러시하고fsync ()
를 사용하여 데이터 파일을 플래시합니다. 다양한 종류의 Unix에서 문제가 발생하고 있기 때문에,InnoDB
는 직접O_DSYNC
가 사용되지 않습니다.O_DIRECT
:InnoDB
는O_DIRECT
(Solaris에서는directio ()
)를 사용하여 데이터 파일을 열고fsync ()
를 사용하여 데이터 파일과 로그 파일을 플러시합니다. 이 옵션은 일부 GNU / Linux 버전, FreeBSD 및 Solaris에서 사용 가능합니다.O_DIRECT_NO_FSYNC
:InnoDB
는 I / O의 플래시시에O_DIRECT
를 사용하지만 후속fsync ()
시스템 호출은 생략합니다. 이 설정은 일부 유형의 파일 시스템에는 적합하지만, 그 외에는 적합하지 않습니다. 예를 들어, XFS에는 적합하지 않습니다. 예를 들어, 사용중인 파일 시스템에서 모든 파일 메타 데이터를 유지하기 위해fsync ()
가 필요인지 여부를 알 수없는 경우는 대신O_DIRECT
를 사용하십시오. 이 옵션은 MySQL 5.6.7 (Bug # 11754304, Bug # 45892)에서 도입되었습니다.
각 설정에 따른 성능에 미치는 영향은 하드웨어 구성 및 워크로드에 따라 다릅니다. 사용하는 설정을 결정하거나 기본 설정을 그대로할지 여부를 결정하는 특정 구성에서 벤치마킹을 실시합니다. 설정마다
fsync ()
호출의 전체 수를 확인하려면Innodb_data_fsyncs
상태 변수를 조사합니다. 워크로드에 읽기 및 쓰기 작업을 혼합하면 일부 설정의 실행에 영향을 줄 수 있습니다. 예를 들어, 하드웨어 RAID 컨트롤러 및 배터리 백업되는 쓰기 캐시가 탑재 된 시스템에서는InnoDB
의 버퍼 풀 및 운영 체제의 파일 시스템 캐시간에 이중 버퍼링을 회피 할 때O_DIRECT
가 도움이 있습니다.InnoDB
의 데이터 파일과 로그 파일이 SAN에 배치 된 일부 시스템에서는 대부분의SELECT
문을 포함하는 읽기 집약적 워크로드에서 기본값 또는O_DSYNC
의 속도가 빠를 수 있습니다. 이 매개 변수는 반드시 운영 환경이 반영 된 하드웨어 및 워크로드 테스트하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.innodb_flush_neighbors
도입 5.6.3 명령 줄 형식 --innodb_flush_neighbors
시스템 변수 이름 innodb_flush_neighbors
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 enumeration
기본 1
유효한 값 0
1
2
InnoDB의 버퍼 풀 에서 페이지를 플래시 하면 같은 범위 에서 다른 더티 페이지 도 플래시되는지 여부를 지정합니다.
디폴트 값 1은 버퍼 풀에서 동일한 범위의 연속 더티 페이지가 플래시됩니다.
0을 설정하면
innodb_flush_neighbors
이 꺼지고 기타 더티 페이지는 버퍼 풀에서 플래시되지 않습니다.2를 설정하면 동일한 범위 내의 더티 페이지가 버퍼 풀에서 플래시됩니다.
테이블 데이터가 기존의 HDD 저장 장치에 저장되어있는 경우는 1 번의 작업으로 이러한 인접 페이지 를 플래시하면 다양한 시간에 개별 페이지를 플래시하는 경우와 비교하여 (주로 디스크 탐색 작업) I / O 오버 헤드가 감소됩니다. 테이블 데이터가 SSD 에 저장되어있는 경우 검색 시간이 중요한 요소가 아니기 때문에이 설정을 해제하면 쓰기 작업을 분산 할 수 있습니다. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_flushing_avg_loops
도입 5.6.6 명령 줄 형식 --innodb_flushing_avg_loops = #
시스템 변수 이름 innodb_flushing_avg_loops
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 30
최소 1
최대 값 1000
InnoDB가 이전에 계산 된 플래시 상태의 스냅 샷을 보존하는 반복의 수입니다. 따라서 적응 형 플래시 가 워크로드 의 변경에 대응하는 속도가 제어됩니다. 이 값을 크게하면 워크로드가 변화함에 따라 플래시 작업 속도가 원활하고 서서히 변화합니다. 이 값을 줄이면 적응 형 플래시가 워크로드의 변화에 빠르게 적응합니다. 따라서 워크로드가 갑자기 증감 한 경우 플래시 활동이 급증 할 가능성이 있습니다.
innodb_force_load_corrupted
도입 5.6.3 명령 줄 형식 --innodb_force_load_corrupted
시스템 변수 이름 innodb_force_load_corrupted
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
InnoDB 시작시 손상 마크가 붙은 테이블을로드 할 수 있습니다. 문제 해결시에 아무것도 대처해야 액세스 할 수 데이터를 복구하는 데에만 사용하십시오. 문제 해결이 완료되면이 설정을 해제 다시 서버를 다시 시작합니다.
innodb_force_recovery
명령 줄 형식 --innodb_force_recovery = #
시스템 변수 이름 innodb_force_recovery
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 0
최소 0
최대 값 6
충돌 복구 모드입니다. 일반적으로 심각한 문제 해결 상황에서만 변경됩니다. 가능한 값은 0에서 6까지입니다. 이 값의 의미 및
innodb_force_recovery
에 대한 중요한 정보는 섹션 14.19.2 "InnoDB 복구 강제 실행" 을 참조하십시오.경고긴급 상황에서만이 변수를 0보다 큰 값으로 설정하십시오. 이렇게하면
InnoDB
를 시작하고 테이블을 덤프 할 수 있습니다. 안전 대책으로서innodb_force_recovery
을 0보다 크게하면InnoDB
에서INSERT
,UPDATE
또는DELETE
조작이 방지됩니다. 또한 5.6.15 시점에서는innodb_force_recovery
설정을 4보다 크게하면InnoDB
가 읽기 전용 모드입니다.이러한 제약 때문에,
--relay-log-info-repository = TABLE
과--master-info-repository = TABLE
등의 복제 옵션은InnoDB
의 테이블에 정보가 저장되면 복제 관리 명령 실패 오류가 발생할 수 있습니다.innodb_ft_aux_table
도입 5.6.4 시스템 변수 이름 innodb_ft_aux_table
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
FULLTEXT
인덱스를 포함InnoDB
테이블의 정규화 된 이름을 지정합니다. 이 변수는 진단을 위해 사용되며, 실행시에만 설정할 수 있습니다. 예 :mysql> set global innodb_ft_aux_table = 'test / t1';
이 변수를 시작할 때 설정하려고하면 " mysqld : option '--innodb-ft-aux-table'can not take an argument " 오류가 발생하고 부팅이 중지됩니다. 이 변수를
형식의 이름으로 설정하면db_name
/table_name
INFORMATION_SCHEMA
테이블INNODB_FT_INDEX_TABLE
,INNODB_FT_INDEX_CACHE
,INNODB_FT_CONFIG
,INNODB_FT_DELETED
및INNODB_FT_BEING_DELETED
에 지정된 테이블의 검색 인덱스에 대한 정보가 표시됩니다.innodb_ft_cache_size
도입 5.6.4 명령 줄 형식 --innodb_ft_cache_size = #
시스템 변수 이름 innodb_ft_cache_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (> = 5.6.4 <= 5.6.9) 유형 integer
기본 32000000
허용되는 값 (> = 5.6.10) 유형 integer
기본 8000000
최소 1600000
최대 값 80000000
InnoDB
의 FULLTEXT 검색 인덱스 캐시에 할당 된 메모리 량 (바이트 단위)입니다.InnoDB
의FULLTEXT
인덱스를 만들 때이 양의 분석 된 문서가 메모리에 유지됩니다.innodb_ft_cache_size
크기 제한에 도달하면 인덱스의 삽입 및 업데이트 만 디스크에 커밋됩니다.innodb_ft_cache_size
에서는 캐시 크기가 테이블에 대해 정의됩니다. 모든 테이블에 글로벌 제한을 설정하는 방법은innodb_ft_total_cache_size
를 참조하십시오.innodb_ft_enable_diag_print
도입 5.6.4 명령 줄 형식 --innodb_ft_enable_diag_print = #
시스템 변수 이름 innodb_ft_enable_diag_print
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.6) 유형 boolean
기본 ON
허용되는 값 (> = 5.6.7) 유형 boolean
기본 OFF
추가 텍스트 검색 (FTS) 진단 출력을 사용할지 여부를 지정합니다. 이 옵션은 주로 고급 FTS 디버깅을 위해 사용되며, 대부분의 사용자에게는 관심이없는 것입니다. 출력은 오류 로그에 기록 된 다음과 같은 정보가 포함되어 있습니다.
FTS 인덱스 동기화 진행 (FTS 캐시 제한에 도달했을 때). 예 :
FTS SYNC for table test, deleted count : 100 size : 10000 bytes SYNC words : 100
FTS 최적화 상태입니다. 예 :
FTS start optimize test FTS_OPTIMIZE : optimize "mysql" FTS_OPTIMIZE : processed "mysql"
FTS 인덱스 구축의 진행 상황. 예 :
Number of doc processed : 1000
FTS 쿼리는 쿼리 분석 트리 단어의 무게 쿼리 처리 시간 및 메모리 사용량이 출력됩니다. 예 :
FTS Search Processing time : 1 secs : 100 millisec : row (s) 10000 Full Search Memory : 245666 (bytes) Row : 10000
innodb_ft_enable_stopword
도입 5.6.4 명령 줄 형식 --innodb_ft_enable_stopword = #
시스템 변수 이름 innodb_ft_enable_stopword
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 ON
인덱스를 만들 때 일련의 중지 단어 가
InnoDB
의FULLTEXT
인덱스에 연관을 지정합니다.innodb_ft_user_stopword_table
옵션이 설정되어있는 경우는 그 테이블에서 중지 단어가 검색됩니다. 그렇지 않으면innodb_ft_server_stopword_table
옵션이 설정되어있는 경우는 그 테이블에서 중지 단어가 검색됩니다. 그렇지 않으면 기본 제공 기본 불용어 세트가 사용됩니다.innodb_ft_max_token_size
도입 5.6.4 명령 줄 형식 --innodb_ft_max_token_size = #
시스템 변수 이름 innodb_ft_max_token_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 84
최소 10
최대 값 252
InnoDB의
FULLTEXT
인덱스에 포함되는 단어의 최대 길이입니다. 이 값에 제한을 설정하면 실제 단어가 아닌 검색어가 될 가능성이 낮은 문자의 임의의 컬렉션과 긴 키워드가 생략 된 것으로, 인덱스의 크기가 감소되기 때문에 쿼리의 속도가 오릅니다.innodb_ft_min_token_size
도입 5.6.4 명령 줄 형식 --innodb_ft_min_token_size = #
시스템 변수 이름 innodb_ft_min_token_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 3
최소 0
최대 값 16
InnoDB의
FULLTEXT
인덱스에 포함되는 단어의 최소 길이입니다. 이 값을 늘리면 검색 컨텍스트에서 중요한 될 가능성이 낮은 일반적인 단어 ( " a " 와 " to " 등의 단어)가 생략 된 것으로, 인덱스의 크기가 감소되기 때문에 쿼리의 속도가 빨라집니다. 내용으로 CJK (중국어, 일본어, 한국어) 문자 세트가 사용되는 경우, 값 1을 지정합니다.innodb_ft_num_word_optimize
도입 5.6.4 명령 줄 형식 --innodb_ft_num_word_optimize = #
시스템 변수 이름 innodb_ft_num_word_optimize
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 2000
InnoDB
의FULLTEXT
인덱스에서 각OPTIMIZE TABLE
작업 중에 처리되는 단어 수입니다. 전체 텍스트 검색 인덱스를 포함하는 테이블에 대량 삽입 또는 대량 업데이트 작업은 모든 변경 사항을 통합하기 위해 대량의 인덱스 유지 관리가 필요할 수 있기 때문에 각각이 마지막으로 종료 한 장소에서 재개 일련의OPTIMIZE TABLE
문을 실행하면 좋을 것입니다.innodb_ft_result_cache_limit
도입 5.6.13 명령 줄 형식 --innodb_ft_result_cache_limit = #
시스템 변수 이름 innodb_ft_result_cache_limit
변수 범위 글로벌 동적 변수 예 허용되는 값 (> = 5.6.17) 유형 integer
기본 2000000000
최소 1000000
최대 값 2 ** 32-1
허용되는 값 (Unix 32 비트 플랫폼,> = 5.6.13 <= 5.6.16) 유형 integer
기본 2000000000
최소 1000000
최대 값 2 ** 32-1
허용되는 값 (Unix 64 비트 플랫폼,> = 5.6.13 <= 5.6.16) 유형 integer
기본 2000000000
최소 1000000
최대 값 2 ** 64-1
허용되는 값 (Windows> = 5.6.13 <= 5.6.16) 유형 integer
기본 2000000000
최소 1000000
최대 값 2 ** 32-1
FTS 쿼리마다 또는 스레드마다 (바이트 단위로 정의 된)
InnoDB
의 FULLTEXT 검색 (FTS) 쿼리 결과 캐시 제한입니다. 중간 및 최종InnoDB
FTS 쿼리 결과는 메모리에서 처리됩니다.InnoDB
의 FTS 쿼리 결과가 매우 큰 (수백만과 수억의 행수 등) 경우 과도한 메모리 소모를 방지하려면innodb_ft_result_cache_limit
를 사용하여InnoDB
의 FTS 쿼리 결과 캐시 크기 제한 부과합니다. 메모리는 FTS 쿼리를 처리 할 때 필요에 따라 할당됩니다. 결과 캐시 크기 제한에 도달하면 쿼리에서 최대한 허용되는 메모리 양을 초과했음을 나타내는 오류가 반환됩니다.MySQL 5.6.17의 시점에서 모든 플랫폼 유형 및 플랫폼 비트 크기에 대응 한
innodb_ft_result_cache_limit
의 최대 값은 2 ** 32-1입니다. Bug # 71554.innodb_ft_server_stopword_table
도입 5.6.4 명령 줄 형식 --innodb_ft_server_stopword_table = db_name / table_name
시스템 변수 이름 innodb_ft_server_stopword_table
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
기본 NULL
이 옵션은 모든
InnoDB
테이블에 대응 한 독자적인InnoDB
의FULLTEXT
인덱스 중지 단어 목록을 지정하는 데 사용됩니다. 특정InnoDB
테이블에 자신의 중지 단어 목록을 구성하려면innodb_ft_user_stopword_table
을 사용합니다.
형식으로db_name
/table_name
innodb_ft_server_stopword_table
을 중지 단어 목록을 포함하는 테이블의 이름으로 설정합니다.innodb_ft_server_stopword_table
를 구성하기 전에 중지 단어 테이블이 존재해야합니다.FULLTEXT
인덱스를 작성하기 전에innodb_ft_enable_stopword
를 사용하여innodb_ft_server_stopword_table
옵션을 구성해야합니다.불용어 테이블은
VALUE
라는 하나의VARCHAR
컬럼을 포함InnoDB
테이블에해야합니다.자세한 내용은 섹션 12.9.4 "전문 스톱 워드" 를 참조하십시오.
innodb_ft_sort_pll_degree
도입 5.6.4 명령 줄 형식 --innodb_ft_sort_pll_degree = #
시스템 변수 이름 innodb_ft_sort_pll_degree
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 2
최소 1
최대 값 32
검색 색인 을 구축 할 때,
InnoDB
의FULLTEXT
인덱스의 텍스트 인덱싱 및 토큰 화를 할 때 병렬로 사용되는 스레드 수입니다. 사용법에 대한 자세한 내용은innodb_sort_buffer_size
를 참조하십시오.innodb_ft_total_cache_size
도입 5.6.13 명령 줄 형식 --innodb_ft_total_cache_size = #
시스템 변수 이름 innodb_ft_total_cache_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 640000000
최소 32000000
최대 값 1600000000
모든 테이블에 대응 한
InnoDB
의FULLTEXT
검색 인덱스 캐시에 할당 된 총 메모리 량 (바이트 단위)입니다. 각각 전체 텍스트 검색 인덱스를 가지는 다수의 테이블을 만들 때 사용 가능한 메모리의 대부분을 소비 할 수 있습니다.innodb_ft_total_cache_size
에서는 과도한 메모리 소모를 방지하는 데 도움이되는 모든 텍스트 검색 인덱스에 대응 한 글로벌 메모리 제한이 정의됩니다. 인덱스 작업 글로벌 제한에 도달하면 강제 동기화가 트리거됩니다.innodb_ft_user_stopword_table
도입 5.6.4 명령 줄 형식 --innodb_ft_user_stopword_table = db_name / table_name
시스템 변수 이름 innodb_ft_user_stopword_table
변수 범위 글로벌 세션 동적 변수 예 허용되는 값 유형 string
기본 NULL
이 옵션은 특정 테이블에 자신의
InnoDB
의FULLTEXT
인덱스 중지 단어 목록을 지정하는 데 사용됩니다. 모든InnoDB
테이블에 대한 자신의 중지 단어 목록을 구성하려면innodb_ft_server_stopword_table
을 사용합니다.
형식으로db_name
/table_name
innodb_ft_user_stopword_table
을 중지 단어 목록을 포함하는 테이블의 이름으로 설정합니다.innodb_ft_user_stopword_table
를 구성하기 전에 중지 단어 테이블이 존재해야합니다.FULLTEXT
인덱스를 작성하기 전에innodb_ft_enable_stopword
를 사용하여innodb_ft_user_stopword_table
옵션을 구성해야합니다.불용어 테이블은
VALUE
라는 하나의VARCHAR
컬럼을 포함InnoDB
테이블에해야합니다.자세한 내용은 섹션 12.9.4 "전문 스톱 워드" 를 참조하십시오.
innodb_io_capacity
명령 줄 형식 --innodb_io_capacity = #
시스템 변수 이름 innodb_io_capacity
변수 범위 글로벌 동적 변수 예 허용되는 값 (32 비트 플랫폼) 유형 integer
기본 200
최소 100
최대 값 2 ** 32-1
허용되는 값 (64 비트 플랫폼) 유형 integer
기본 200
최소 100
최대 값 2 ** 64-1
innodb_io_capacity
매개 변수는InnoDB
백그라운드 작업에서 실행되는 I / O 활동 ( 버퍼 풀 에서 페이지의 플래시 와 삽입 버퍼 에서 데이터 병합 등)에 상한을 설정합니다. 기본값은 200입니다. 높은 I / O 속도를 처리 할 수있는 높은 부하 시스템에서 서버를 시작할 때 큰 값을 설정하면 서버가 높은 비율의 행 변경과 관련된 백그라운드 유지 보수 작업을 처리 할 수 있습니다.innodb_io_capacity
제한은 모든 버퍼 풀 인스턴스에 대한 총 제한입니다. 더티 페이지가 플래시 될 때innodb_io_capacity
제한 버퍼 풀 인스턴스간에 균등하게 분할됩니다.개별 5400 RPM 또는 7200 RPM 드라이브가 탑재 된 시스템에서는 원래 기본
100
까지 값을 작게하면 좋을 것입니다.이 매개 변수는 거의 시스템이 초당 수행 할 수있는 I / O 작업의 수를 설정하도록하십시오. 이상적으로는이 설정은 가능한 한 작게 유지합니다. 그러나 이러한 백그라운드 활동에 지연이 발생할 정도로 작게 마십시오. 값이 너무 큰 경우 데이터가 버퍼 풀 및 삽입 버퍼에서 즉시 제거되기 때문에 캐시를 사용하는 중요한 이점이 없습니다.
이 값은 약 100 IOPS를 수행 할 수있는 이전 세대의 디스크 드라이브에서 실현 가능한 IOPS (I / O Operations Per Second)의 추정 비율을 나타냅니다. 현재 기본 200은 최신의 저장 장치가 더 높은 I / O 속도를 처리 할 수있는 것을 반영하고 있습니다.
일반적으로
InnoDB
의 I / O에 사용되는 드라이브 (특히 높은 수치의 IOPS를 처리 할 수있는 고속 드라이브)의 수에 따라 값을 크게 할 수 있습니다. 예를 들어,InnoDB
에 대해 여러 디스크 또는 솔리드 스테이트 디스크를 사용하는 시스템에서는이 매개 변수를 제어하는 기능의 이점을 얻을 수있는 가능성이 높아집니다.매우 큰 수치를 지정할 수 있습니다 만, 실제로는 이러한 큰 값으로하면 이점을 얻을 수 있다고도 적습니다. 예를 들어, 100 만 매우 큰 값으로 간주합니다.
innodb_io_capacity
값은innodb_io_capacity_max
에 정의 된 최대 값까지 100 개 이상의 임의의 숫자로 설정할 수 있습니다. 기본값은200
입니다. 이 매개 변수의 값은 MySQL 옵션 파일 (my.cnf
또는my.ini
)로 설정하거나SET GLOBAL
명령 (여기에는SUPER
권한이 있어야합니다)에서 동적으로 변경할 수 있습니다.이 옵션에 대한 자세한 지침은 섹션 14.13.8 "InnoDB 마스터 스레드의 I / O 속도의 구성" 을 참조하십시오. InnoDB의 I / O 성능에 대한 일반적인 정보는 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_io_capacity_max
도입 5.6.6 명령 줄 형식 --innodb_io_capacity_max = #
시스템 변수 이름 innodb_io_capacity_max
변수 범위 글로벌 동적 변수 예 허용되는 값 (32 비트 플랫폼) 유형 integer
기본 see description
최소 2000
최대 값 2 ** 32-1
허용되는 값 (Unix 64 비트 플랫폼) 유형 integer
기본 see description
최소 2000
최대 값 2 ** 64-1
허용되는 값 (Windows 64 비트 플랫폼) 유형 integer
기본 2000
최소 2000
최대 값 2 ** 32-1
긴급
innodb_io_capacity
설정을 확장 할 때InnoDB
에서 허용되는 한도입니다. 시작할 때innodb_io_capacity
설정을 지정하고innodb_io_capacity_max
에 값을 지정하지 않는 경우는innodb_io_capacity_max
의 기본값이innodb_io_capacity
의 2 배로 하한이 2000입니다. 또한 2000은 초기 기본innodb_io_capacity_max
구성입니다.innodb_io_capacity_max
설정은 모든 버퍼 풀 인스턴스에 대한 총 제한입니다.MySQL 5.6 개발중인 단기간이 변수는
innodb_max_io_capacity
라고했습니다. MySQL 5.6.7에서는innodb_io_capacity
옵션과의 관계를 강조하기 위해innodb_io_capacity_max
로 이름이 변경되었습니다.innodb_large_prefix
도입 5.6.3 명령 줄 형식 --innodb_large_prefix
시스템 변수 이름 innodb_large_prefix
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
이 옵션을 활성화하면
DYNAMIC
및COMPRESSED
행 형식을 사용하는InnoDB
테이블에서 767 바이트보다 긴 (최대 3072 바이트) 인덱스 키 프리픽스 가 허용됩니다. (이러한 테이블의 생성에는innodb_file_format = barracuda
및innodb_file_per_table = true
옵션 값도 필요합니다.) 다양한 설정에서 인덱스 키 프리픽스와 관련된 관련성의 최대 값은 섹션 14.6.7 "InnoDB 테이블에서의 제한" 을 참조하십시오.REDUNDANT
및COMPACT
행 형식을 사용하여 테이블에서는이 옵션은 키 프리픽스의 길이는 영향을받지 않습니다.innodb_lock_wait_timeout
명령 줄 형식 --innodb_lock_wait_timeout = #
시스템 변수 이름 innodb_lock_wait_timeout
변수 범위 글로벌 세션 동적 변수 예 허용되는 값 유형 integer
기본 50
최소 1
최대 값 1073741824
행 잠금 이 해제 될 때까지
InnoDB
트랜잭션 이 대기하는 시간 (초)입니다. 기본값은 50 초입니다. 다른InnoDB
트랜잭션에 잠겨있는 행에 액세스를 시도 트랜잭션이 행에 대한 쓰기 액세스를 최대로이 초 간 기다린 후 다음 오류를 발행합니다.ERROR 1205 (HY000) : Lock wait timeout exceeded; try restarting transaction
잠금 대기 시간 초과가 발생하면 (트랜잭션 전체가 아닌) 현재 문이 롤백 됩니다. 전체 트랜잭션을 롤백하려면
--innodb_rollback_on_timeout
옵션을 사용하여 서버를 시작합니다. 섹션 14.19.4 "InnoDB 오류 처리" 를 참조하십시오.고도의 대화 형 응용 프로그램 또는 OLTP 시스템에서는 사용자의 피드백을 신속하게보고 나중에 처리하기 위해 업데이트를 큐에 넣거나하기 위해이 값을 작게하면 좋을 것입니다. 장시간 실행되는 백엔드 조작 (기타 대규모 삽입 또는 갱신 조작이 완료 될 때까지 대기하는 데이터웨어 하우스에서의 변환 단계 등)에서는이 값을 크게하면 좋을 것입니다.
innodb_lock_wait_timeout
은InnoDB
행 잠금에만 적용됩니다. MySQL의 테이블 락 은InnoDB
내부에서는 발생하지 않고,이 시간은 테이블 잠금 대기에는 적용되지 않습니다.교착 상태 는
InnoDB
에 의해 즉시 감지하고 교착 상태가 된 트랜잭션 중 하나가 롤백되기 때문에 교착 상태는 잠금 대기 시간 제한이 적용되지 않습니다.innodb_lock_wait_timeout
는 런타임에SET GLOBAL
또는SET SESSION
문 함께 설정할 수 있습니다.GLOBAL
값을 변경하려면SUPER
권한이 필요합니다. 이를 변경하면 이후에 연결된 모든 클라이언트의 작업이 영향을받습니다. 모든 클라이언트가innodb_lock_wait_timeout
의SESSION
설정을 변경할 수 있으며, 클라이언트 만 영향을받습니다.innodb_locks_unsafe_for_binlog
비추천 5.6.3 명령 줄 형식 --innodb_locks_unsafe_for_binlog
시스템 변수 이름 innodb_locks_unsafe_for_binlog
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
이 변수는
InnoDB
검색과 인덱스 스캔에서 갭 잠금 을 사용하는 방법이 영향을받습니다. MySQL 5.6.3의 시점에서는innodb_locks_unsafe_for_binlog
는 사용되지 않으며 향후 MySQL 릴리스에서 제거 될 예정입니다.일반적으로
InnoDB
는 인덱스 행 잠금 및 갭 잠금 을 조합 한 「넥스트 키 잠금 "이라는 알고리즘이 사용됩니다.InnoDB
는 테이블 인덱스를 검색 또는 스캔 할 때 생성 된 인덱스 레코드에 공유 락 또는 배타 락을 설정하는 방법으로 행 수준 잠금을 실행합니다.따라서 행 레벨 락은 실제로 인덱스 레코드 잠금입니다. 게다가 어느 인덱스 레코드에 넥스트 키 잠금은 인덱스 레코드 앞의 '갭'에도 영향을받습니다. 즉, 넥스트 키 잠금은 인덱스 레코드 잠금과 그 인덱스 레코드의 전의 갭에 대한 갭 잠금을 조합 한 것입니다.세션이 인덱스의 레코드R
에 공유 락 또는 배타 락을 가지고 있다면, 다른 세션이 인덱스 순서로R
의 직전에있는 갭에 새로운 인덱스 레코드를 삽입 할 수 없습니다. 섹션 14.2.6 "InnoDB 레코드 격차 및 넥스트 키 잠금" 을 참조하십시오.innodb_locks_unsafe_for_binlog
값은 기본적으로 0 (해제)되어 있습니다 만, 이것은 갭 락이 유효하다는 것을 의미합니다.InnoDB
는 넥스트 키 잠금을 사용하여 검색 및 인덱스 스캔을 실행합니다. 이 변수를 사용하려면 값을 1로 설정합니다. 그러면 갭 잠금이 해제됩니다.InnoDB
는 인덱스 레코드 잠금만을 사용하여 검색 및 인덱스 스캔을 실행합니다.innodb_locks_unsafe_for_binlog
를 사용해서 외부 키 제약 조건 검사와 중복 키 검사 간격 잠금 사용이 비활성화되지 않습니다.innodb_locks_unsafe_for_binlog
를 사용했을 경우의 영향은 트랜잭션 격리 수준을READ COMMITTED
로 설정했을 경우의 영향과 비슷하지만 같지는 않습니다.innodb_locks_unsafe_for_binlog
를 사용하는 것은 글로벌 설정이기 때문에 모든 세션이 영향을받습니다. 반면에, 분리 레벨은 모든 세션에 대해 전체적으로 설정할 수도 세션마다 개별적으로 설정할 수 있습니다.innodb_locks_unsafe_for_binlog
는 서버가 시작될 때만 설정할 수없는 반면, 분리 레벨은 시작할 때 설정하거나 런타임에 변경할 수 있습니다.
따라서
READ COMMITTED
는innodb_locks_unsafe_for_binlog
보다 작아 유연한 제어가 제공됩니다. 갭 락에 대한 격리 수준의 영향에 대한 추가 자세한 내용은 섹션 13.3.6 "SET TRANSACTION 구문" 을 참조하십시오.갭 잠금이 해제되면 다른 세션이 새 행을 간격에 포함 할 수 있습니다
innodb_locks_unsafe_for_binlog
를 사용하면 팬텀의 문제가 발생할 수 있습니다.child
테이블의id
컬럼에 인덱스가 식별자의 값이 100보다 큰 모든 행을 테이블에서 읽기, 선택된 행의 일부 열을 나중에 업데이트하겠다는 의도 잠금한다고 가정합니다.SELECT * FROM child WHERE id> 100 FOR UPDATE;
쿼리는
id
가 100보다 큰 첫 번째 레코드에서 인덱스가 스캔됩니다. 그 범위 내의 인덱스 레코드에 설정된 잠금은 갭에 삽입이 잠겨 있지 않은 경우는 다른 세션이 테이블에 새 행을 삽입 할 수 있습니다. 따라서 같은 트랜잭션 내에서 동일한SELECT
를 다시 실행하면 쿼리에서 반환 된 결과 집합에 새 행을 찾을 수 있습니다. 이것은 데이터베이스에 새 항목이 추가 된 경우,InnoDB
로 직렬화 가능성이 보장되지 않는 것을 의미합니다. 따라서innodb_locks_unsafe_for_binlog
가 유효한 경우에InnoDB
에 의해 보증되는 최대의 분리 레벨은READ COMMITTED
됩니다. (경쟁 직렬화 가능성은 계속 보장됩니다.) 팬텀의 추가 정보 섹션 14.2.7 "넥스트 키로 크에 의한 팬텀 문제 해결" 을 참조하십시오.innodb_locks_unsafe_for_binlog
를 사용하는 경우에는 다음과 같은 영향도 발생합니다.UPDATE
또는DELETE
문은InnoDB
는 업데이트 또는 삭제의 대상이되는 행에 대해서만 잠금을 유지합니다. 일치하지 않는 행의 레코드 잠금은 MySQL에 의한WHERE
조건의 평가 후 해제됩니다. 이로 인해 교착 상태의 가능성이 크게 낮아지고 있지만 여전히 발생할 수는 있습니다.UPDATE
문 인 행이 이미 잠겨 있었을 경우,InnoDB
는 " 반 일관성 " 읽기를 수행하고 마지막으로 커밋 된 버전을 MySQL에 돌려주기 위해서, MySQL은 행이UPDATE
의WHERE
조건에 일치하는지 여부를 확인할 수 있습니다. 그 행이 일치하는 경우 (해당 행을 갱신 할 필요가있는 경우), MySQL은 그 줄을 다시 읽고InnoDB
는 이번에는 그 행을 잠 그거나 행 잠금이 해제 될 때까지 기다립니다.
다음과 같은 예를 들어,이 테이블에서 검토합니다.
CREATE TABLE t (a INT NOT NULL, b INT) ENGINE = InnoDB; INSERT INTO t VALUES (1,2), (2,3), (3,2), (4,3), (5,2); COMMIT;
이 경우 테이블에 인덱스가 설정되어 있지 않기 때문에, 검색 및 인덱스 스캔은 숨겨진 클러스터 된 인덱스를 사용하여 레코드 잠금이 이루어집니다 ( 섹션 14.2.13.2 "클러스터 인덱스와 보조 인덱스 " 을 참조하십시오).
클라이언트가 다음 문을 사용하여
UPDATE
를 실행한다고 가정합니다.SET autocommit = 0; UPDATE t SET b = 5 WHERE b = 3;
또한 두 번째 클라이언트가 첫 번째 클라이언트를 실행 한 후 다음 문을 실행하여
UPDATE
를 실행한다고 가정합니다.SET autocommit = 0; UPDATE t SET b = 4 WHERE b = 2;
InnoDB
는 각UPDATE
를 실행하면 먼저 각 행에 대한 배타적 잠금을 얻은 다음 행을 수정할지 여부를 결정합니다.InnoDB
가 그 행을 변경하지 아니하고innodb_locks_unsafe_for_binlog
가 유효한 경우, 잠금이 해제됩니다. 그렇지 않으면 트랜잭션이 끝날 때까지InnoDB
는 잠금을 유지합니다. 그러면 트랜잭션 처리가 다음과 같은 영향을받습니다.innodb_locks_unsafe_for_binlog
이 잘못된 경우는 다음과 같이 첫 번째UPDATE
는 X 잠금을 획득하고 모두 해제하지 않습니다.x-lock (1,2); retain x-lock x-lock (2,3); update (2,3) to (2,5); retain x-lock x-lock (3,2); retain x-lock x-lock (4,3); update (4,3) to (4,5); retain x-lock x-lock (5,2); retain x-lock
다음과 같이 두 번째
UPDATE
는 (첫 번째 업데이트가 모든 행 잠금을 보유하고 있기 때문에) 락을 취득하려고해도 즉시 차단 된 첫 번째UPDATE
가 커밋 또는 롤백 실행할 때까지 계속되지 않습니다.x-lock (1,2); block and wait for first UPDATE to commit or roll back
innodb_locks_unsafe_for_binlog
가 유효한 경우는 다음과 같이 첫 번째UPDATE
는 X 잠금을 획득 한 후 변경되지 않는 행 잠금을 해제합니다.x-lock (1,2); unlock (1,2) x-lock (2,3); update (2,3) to (2,5); retain x-lock x-lock (3,2); unlock (3,2) x-lock (4,3); update (4,3) to (4,5); retain x-lock x-lock (5,2); unlock (5,2)
두 번째
UPDATE
는 다음과 같이InnoDB
는 " 반 일관성 " 읽 마지막으로 커밋 된 버전을 MySQL에 돌려주기 위해서, MySQL은 행이UPDATE
의WHERE
조건에 일치하는지 여부를 판단 할 수 합니다.x-lock (1,2); update (1,2) to (1,4); retain x-lock x-lock (2,3); unlock (2,3) x-lock (3,2); update (3,2) to (3,4); retain x-lock x-lock (4,3); unlock (4,3) x-lock (5,2); update (5,2) to (5,4); retain x-lock
innodb_log_buffer_size
명령 줄 형식 --innodb_log_buffer_size = #
시스템 변수 이름 innodb_log_buffer_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 8388608
최소 262144
최대 값 4294967295
디스크의 로그 파일 에 기록 할 때
InnoDB
에서 사용되는 버퍼의 크기 (바이트)입니다. 기본값은 8M 바이트입니다. 로그 버퍼 를 크게하면 트랜잭션이 커밋 하기 전에 디스크에 로그를 기록하지 않고도 대규모 트랜잭션 을 실행할 수 있습니다. 따라서 많은 행을 갱신, 삽입 또는 삭제 트랜잭션의 경우 로그 버퍼를 늘리면 디스크 I / O를 줄일 수 있습니다. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.innodb_log_compressed_pages
도입 5.6.11 명령 줄 형식 --innodb_log_compressed_pages = #
시스템 변수 이름 innodb_log_compressed_pages
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 ON
다시 압축 된 페이지 의 이미지가
InnoDB
의 Redo 로그 에 저장되는지 여부를 지정합니다.이 변수는 MySQL 5.6.11에서 추가되었다.
innodb_log_file_size
명령 줄 형식 --innodb_log_file_size = #
시스템 변수 이름 innodb_log_file_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (<= 5.6.2) 유형 integer
기본 5242880
최소 1048576
최대 값 4GB / innodb_log_files_in_group
허용되는 값 (> = 5.6.3 <= 5.6.7) 유형 integer
기본 5242880
최소 1048576
최대 값 512GB / innodb_log_files_in_group
허용되는 값 (> = 5.6.8) 유형 integer
기본 50331648
최소 1048576
최대 값 512GB / innodb_log_files_in_group
로그 그룹 내의 각 로그 파일 의 크기 (바이트)입니다. 로그 파일을 결합한 크기 (
innodb_log_file_size
*innodb_log_files_in_group
)는 512G 바이트보다 약간 작은 최대 값을 초과 할 수 없습니다. 기본값은 48M 바이트입니다. 적절한 값의 범위는 1M 바이트에서 1 / 버퍼 풀 의N
번째의 크기까지입니다. 여기서N
은 그룹 내의 로그 파일의 수입니다. 값이 클수록, 버퍼 풀에서 필요한 체크 포인트 플래시 활동의 수가 줄어들 기 때문에 디스크 I / O를 줄일 수 있습니다. 또한 로그 파일을 크게하면 충돌 복구 의 속도가 느려집니다. 그러나 MySQL 5.5 이상에서는 복구 성능이 개선되고 있기 때문에 로그 파일의 크기에 대한 고려 사항도 줄어 듭니다. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.중요Bug # 69477로 인해 외부에 저장된 큰
BLOB
필드에 대한 Redo 로그 기록을 통해 최신의 체크 포인트를 덮어 쓸 수 있습니다. 이 버그를 해결하기 위해 MySQL 5.6.20에서 도입 된 패치를 적용하면BLOB
에 기록 된 Redo 로그의 크기가 Redo 로그 파일 크기의 10 %로 제한됩니다. 이러한 제한의 결과로innodb_log_file_size
테이블의 행에서 발견 된 최대의BLOB
데이터 크기의 10 배보다 큰 값으로 다른 변수 길이 필드 (VARCHAR
,VARBINARY
및TEXT
형 필드)의 길이 를 더한 값으로 설정해야합니다.MySQL 5.6.22에서는 Redo 로그
BLOB
쓰기 제한은 총 Redo 로그 크기 (innodb_log_file_size
*innodb_log_files_in_group
)의 10 %에 이완했습니다. (Bug # 19498877)innodb_log_files_in_group
명령 줄 형식 --innodb_log_files_in_group = #
시스템 변수 이름 innodb_log_files_in_group
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 2
최소 2
최대 값 100
로그 그룹 내의 로그 파일 의 수입니다.
InnoDB
는 파일에 윤상에 기록합니다. 기본 (권장) 값은 2입니다. 이러한 파일의 위치는innodb_log_group_home_dir
으로 지정됩니다. 로그 파일을 결합한 크기 (innodb_log_file_size
*innodb_log_files_in_group
)는 최대 512G 바이트 수 있습니다.innodb_log_group_home_dir
명령 줄 형식 --innodb_log_group_home_dir = path
시스템 변수 이름 innodb_log_group_home_dir
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 디렉토리 이름
InnoDB
의 Redo 로그 파일에 대한 디렉토리 경로입니다. 이 숫자는innodb_log_files_in_group
으로 지정됩니다. 어떤InnoDB
로그 변수도 지정하지 않으면 기본적으로 MySQL 데이터 디렉토리에ib_logfile0
및ib_logfile1
라는 2 개의 파일이 생성됩니다. 이러한 크기는innodb_log_file_size
시스템 변수의 크기로 지정됩니다.innodb_lru_scan_depth
도입 5.6.3 명령 줄 형식 --innodb_lru_scan_depth = #
시스템 변수 이름 innodb_lru_scan_depth
변수 범위 글로벌 동적 변수 예 허용되는 값 (32 비트 플랫폼) 유형 integer
기본 1024
최소 100
최대 값 2 ** 32-1
허용되는 값 (64 비트 플랫폼) 유형 integer
기본 1024
최소 100
최대 값 2 ** 64-1
InnoDB
의 버퍼 풀 의 플래시 조작 알고리즘 및 추론 기법에 영향을 미치는 매개 변수입니다. 주로 I / O 집중 워크로드를 조정하는 성능의 전문가가 관심을 가지는 것입니다. 버퍼 풀 인스턴스에 대해page_cleaner
스레드가 플래시 더티 페이지 를 검색 할 때 얼마나 깊이 버퍼 풀 LRU리스트를 스캔 할 것인지를 지정합니다. 이것은 1 초에 한 번씩 실행되는 백그라운드 작업입니다. 일반적인 워크로드에서 여분의 I / O 용량을 가지고있는 경우이 값을 늘립니다. 쓰기가 집중하는 워크로드에서 I / O 용량이 꽉 찬 경우이 값을 작게합니다 (특히 큰 버퍼 풀을 가지고있는 경우). 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.innodb_max_dirty_pages_pct
명령 줄 형식 --innodb_max_dirty_pages_pct = #
시스템 변수 이름 innodb_max_dirty_pages_pct
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 75
최소 0
최대 값 99
InnoDB
는 더티 페이지 의 비율이이 값을 초과하지 않도록, 버퍼 풀 에서 데이터를 플래시 하려고 시도합니다. 기본값은 75입니다.innodb_max_dirty_pages_pct
설정은 플래시 활동의 대상을 설정합니다. 플래시의 빈도에 영향을주지 않습니다. 플래시 주파수 관리는 섹션 14.13.1.2 "InnoDB 버퍼 풀 플러시 빈도 구성" 을 참조하십시오.이 변수에 대한 자세한 내용은 섹션 14.13.1.6 "InnoDB 버퍼 풀의 플래시 튜닝" 을 참조하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_max_dirty_pages_pct_lwm
도입 5.6.6 명령 줄 형식 --innodb_max_dirty_pages_pct_lwm = #
시스템 변수 이름 innodb_max_dirty_pages_pct_lwm
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 0
최소 0
최대 값 99
더티 페이지의 비율을 제어하기 위해 사전 플래시가 활성화되어있는 경우 더티 페이지 의 비율을 나타내는 하위 경계 값입니다. 기본 0에서 사전 플래시 동작이 완전히 비활성화됩니다. 이 변수에 대한 자세한 내용은 섹션 14.13.1.6 "InnoDB 버퍼 풀의 플래시 튜닝" 을 참조하십시오.
innodb_max_purge_lag
명령 줄 형식 --innodb_max_purge_lag = #
시스템 변수 이름 innodb_max_purge_lag
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 0
최소 0
최대 값 4294967295
이 변수는 제거 작업이 늦어진 때
INSERT
,UPDATE
및DELETE
작업을 지연시키는 방법을 제어합니다 ( 섹션 14.2.12 "InnoDB 멀티 버전" 을 참조하십시오). 기본값은 0 (지연 없음)입니다.InnoDB
트랜잭션 시스템은UPDATE
또는DELETE
조작으로 삭제 표시된 인덱스 레코드를 포함하는 트랜잭션의 목록을 유지합니다.purge_lag
값이 목록의 길이를 나타냅니다.purge_lag
이innodb_max_purge_lag
를 초과하면 각INSERT
,UPDATE
및DELETE
작업이 지연됩니다.purge_lag
이 매우 커질 같은 극단적 인 상황에서 과도한 지연을 방지하려면innodb_max_purge_lag_delay
구성 옵션을 설정하면 지연의 양에 제한을 설정할 수 있습니다. 지연은 빠지밧찌을 시작할 때 계산됩니다.트랜잭션이 소규모 (100 바이트 정도의 크기)이며, 허용되는 미 퍼지
InnoDB
테이블 행이 100M 바이트라고 가정하면, 문제가있는 워크로드에 적합한 일반적인 설정이 100 만된다 수 있습니다.지연 값은 InnoDB Monitor 출력의
TRANSACTIONS
섹션에 기록 목록의 길이로 표시됩니다. 예를 들어, 출력에 다음 행이 포함되어있는 경우에는 지연 값이 20입니다.------------ TRANSACTIONS ------------ Trx id counter 0 290328385 Purge done for trx 's n : o <0 290315608 undo n : o <0 17 History list length 20
일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_max_purge_lag_delay
도입 5.6.5 명령 줄 형식 --innodb_max_purge_lag_delay = #
시스템 변수 이름 innodb_max_purge_lag_delay
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 0
최소 0
innodb_max_purge_lag
구성 옵션에 부과 된 지연의 최대 지연을 밀리 초 단위로 지정합니다. 0이 아닌 값은innodb_max_purge_lag
의 값에 따라 공식에서 계산 된 지연 기간에 제한을 나타냅니다. 기본 제로 지연 간격에 제한이 부과되지 않는 것을 의미합니다.일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_mirrored_log_groups
효과는 없습니다.이 변수는 MySQL 5.6.11 시점에서 사용되지 않으며 향후 MySQL 릴리스에서 제거 될 예정입니다.
innodb_monitor_disable
도입 5.6.2 명령 줄 형식 --innodb_monitor_disable = counter | module | pattern | all]
시스템 변수 이름 innodb_monitor_disable
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
INFORMATION_SCHEMA.INNODB_METRICS
테이블에서 하나 이상의 카운터 를 해제합니다. 사용법은 섹션 21.29.19 "INFORMATION_SCHEMA INNODB_METRICS 테이블" 을 참조하십시오.innodb_monitor_enable
도입 5.6.2 명령 줄 형식 --innodb_monitor_enable = counter | module | pattern | all]
시스템 변수 이름 innodb_monitor_enable
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
INFORMATION_SCHEMA.INNODB_METRICS
테이블에서 하나 이상의 카운터 를 선택합니다. 사용법은 섹션 21.29.19 "INFORMATION_SCHEMA INNODB_METRICS 테이블" 을 참조하십시오.innodb_monitor_reset
도입 5.6.2 명령 줄 형식 --innodb_monitor_reset = counter | module | pattern | all]
시스템 변수 이름 innodb_monitor_reset
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
INFORMATION_SCHEMA.INNODB_METRICS
테이블에서 하나 이상의 카운터 에 대응하는 카운트를 0으로 재설정합니다. 사용법은 섹션 21.29.19 "INFORMATION_SCHEMA INNODB_METRICS 테이블" 을 참조하십시오.innodb_monitor_reset_all
도입 5.6.2 명령 줄 형식 --innodb_monitor_reset_all = counter | module | pattern | all]
시스템 변수 이름 innodb_monitor_reset_all
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 string
INFORMATION_SCHEMA.INNODB_METRICS
테이블에서 하나 이상의 카운터 에 대응하는 모든 값 (최소, 최대 등)을 재설정합니다. 사용법은 섹션 21.29.19 "INFORMATION_SCHEMA INNODB_METRICS 테이블" 을 참조하십시오.innodb_old_blocks_pct
명령 줄 형식 --innodb_old_blocks_pct = #
시스템 변수 이름 innodb_old_blocks_pct
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 37
최소 5
최대 값 95
이전 블록 하위 목록 에서 사용되는
InnoDB
의 버퍼 풀 의 예상 비율을 지정합니다. 값의 범위는 5 ~ 95입니다. 기본값은 37 (즉, 수영장 3/8)입니다. 종종innodb_old_blocks_time
와 함께 사용됩니다. 자세한 내용은 섹션 14.13.1.3 "버퍼 풀 스캔을 견딜 수 있도록하겠다" 을 참조하십시오. LRU 알고리즘과 새우 과자 정책 등의 버퍼 풀 관리 내용은 섹션 8.9.1 "InnoDB 버퍼 풀" 을 참조하십시오.innodb_old_blocks_time
명령 줄 형식 --innodb_old_blocks_time = #
시스템 변수 이름 innodb_old_blocks_time
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.5) 유형 integer
기본 0
최소 0
최대 값 2 ** 32-1
허용되는 값 (> = 5.6.6) 유형 integer
기본 1000
최소 0
최대 값 2 ** 32-1
0이 아닌 값으로하면 버퍼 풀 은 테이블 전체 스캔 시 등의 단기간에서만 참조되는 데이터로 가득되기 때문에 보호됩니다. 이 값을 크게하면 테이블 전체 스캔이 버퍼 풀에 캐시 된 데이터와 상호 작용할 수에서 더 보호됩니다.
첫 번째 액세스 후 오래된 하위 목록 에 삽입되는 블록이 새 하위 목록으로 이동하기까지 거기에 머물해야하는 기간을 밀리 초 (ms) 단위로 지정합니다. 값을 0으로하면 이전 하위 목록에 삽입 된 블록은 삽입 후 얼마나 액세스가 발생하는지에 관계없이 첫 번째 액세스 직후에 새 하위 목록으로 이동합니다. 이 값이 0보다 크면 블록은 첫 번째 액세스 후 적어도 그 밀리 세컨드로 액세스가 발생할 때까지 이전 하위 목록에 남아 있습니다. 예를 들어, 1000 값은 블록을 첫 번째 액세스 후 그들이 새 하위 목록으로 이동되는 자격을 얻을 때까지 1 초 이전 하위 목록에 남아 있습니다.
기본값은 MySQL 5.6.6의 시점에서 1000, 그 이전은 0입니다.
대부분의 경우이 변수는
innodb_old_blocks_pct
와 함께 사용됩니다. 자세한 내용은 섹션 14.13.1.3 "버퍼 풀 스캔을 견딜 수 있도록하겠다" 을 참조하십시오. LRU 알고리즘과 새우 과자 정책 등의 버퍼 풀 관리 내용은 섹션 8.9.1 "InnoDB 버퍼 풀" 을 참조하십시오.innodb_online_alter_log_max_size
도입 5.6.6 명령 줄 형식 --innodb_online_alter_log_max_size = #
시스템 변수 이름 innodb_online_alter_log_max_size
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 134217728
최소 65536
최대 값 2 ** 64-1
InnoDB
테이블에 대한 온라인 DDL 작업시 사용되는 임시 로그 파일 크기에 제한을 지정합니다. 생성 된 인덱스 또는 변경되는 테이블마다 이러한 로그 파일이 1 개 존재합니다. 이 로그 파일에는 DDL 작업시 테이블에 삽입, 업데이트 또는 삭제 된 데이터가 저장됩니다. 임시 로그 파일은innodb_sort_buffer_size
값에서 필요할 때 최대innodb_online_alter_log_max_size
에 지정된 최대 값까지 확장됩니다. 임시 로그 파일 크기 제한을 초과 한 경우ALTER TABLE
조작에 실패하고 커밋되지 않은 병렬 DML 작업이 롤백됩니다. 따라서이 옵션의 값을 크게하면 온라인 DDL 작업시에 수행 할 수있는 DML 수는 많아집니다 만, 로그 데이터를 적용하기 위해 테이블을 잠금되면 DDL 작업 종료시의 기간도 길어집니다 .innodb_open_files
명령 줄 형식 --innodb_open_files = #
시스템 변수 이름 innodb_open_files
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (<= 5.6.5) 유형 integer
기본 300
최소 10
최대 값 4294967295
허용되는 값 (> = 5.6.6) 유형 integer
기본 -1 (autosized)
최소 10
최대 값 4294967295
이 변수는 여러
InnoDB
테이블 스페이스 를 사용하는 경우에만 해당합니다. MySQL에서 한 번에 열려있는.ibd
파일 의 최대 수를 지정합니다. 최소값은 10입니다. MySQL 5.6.6의 시점에서는innodb_file_per_table
이 비활성화되어있는 경우 기본값은 300입니다. 그렇지 않으면 300보다 큰 값 및table_open_cache
입니다. 5.6.6 이전의 기본값은 300입니다..ibd
파일에 사용되는 파일 디스크립터는InnoDB
테이블에서만 사용됩니다. 그들은--open-files-limit
서버 옵션에 의해 지정된 것에서는 독립적 테이블 캐시 작업에 영향을주지 않습니다. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.innodb_optimize_fulltext_only
도입 5.6.4 명령 줄 형식 --innodb_optimize_fulltext_only = #
시스템 변수 이름 innodb_optimize_fulltext_only
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
InnoDB
테이블에서OPTIMIZE TABLE
문 동작 방법을 변경합니다.FULLTEXT
인덱스를 포함InnoDB
테이블의 유지 보수 작업시에 일시적으로 활성화하는 데 사용됩니다.기본적으로
OPTIMIZE TABLE
은 테이블의 클러스터 된 인덱스 의 데이터를 재구성합니다. 이 옵션을 활성화하면OPTIMIZE TABLE
은이 같은 테이블 데이터의 재구성을 생략하고 대신FULLTEXT
인덱스 용으로 새롭게 추가, 삭제 및 업데이트 된 토큰 데이터를 처리합니다.InnoDB
테이블의FULLTEXT
인덱스에 대한 자세한 내용은 섹션 14.2.13.3 "FULLTEXT 인덱스" 를 참조하십시오.innodb_page_size
도입 5.6.4 명령 줄 형식 --innodb_page_size = # k
시스템 변수 이름 innodb_page_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (> = 5.6.4) 유형 enumeration
기본 16384
유효한 값 4k
8k
16k
4096
8192
16384
MySQL 인스턴스 내의 모든
InnoDB
테이블 스페이스 의 페이지 크기 를 지정합니다. 이 값은 인스턴스가 작성된 후 상수가 남아있는 경우에 설정됩니다. 페이지 크기 값16k
(기본값),8k
또는4k
를 사용하여 지정할 수 있습니다. 또한 바이트 (4096,8192,16384)에서 페이지 크기를 지정할 수도 있습니다.최대 페이지 크기는 기본이 광범위한 워크로드 (특히 테이블 스캔을 수반하는 쿼리 및 일괄 업데이트를 수반 DML 작업)에 적합합니다. 페이지 크기가 작을수록 많은 작은 기록되는 OLTP 워크로드의 효율성이 높아질 가능성이 있습니다. 반면 단일 페이지에 많은 행이 포함 된 경우 충돌 문제가 발생할 수 있습니다. 페이지를 줄이면 일반적으로 작은 블록 크기를 사용하는 SSD 저장 장치의 효율성이 높아질 가능성도 있습니다.
InnoDB
의 페이지 크기를 저장 장치의 블록 크기에 근접하면 디스크에 다시 기록되지 않은 변경 데이터의 양이 최소화됩니다. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.innodb_print_all_deadlocks
도입 5.6.2 명령 줄 형식 --innodb_print_all_deadlocks = #
시스템 변수 이름 innodb_print_all_deadlocks
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
이 옵션을 사용하면
mysqld
오류 로그 에InnoDB
의 사용자 트랜잭션의 모든 교착 상태 에 대한 정보가 기록됩니다. 그렇지 않으면,SHOW ENGINE INNODB STATUS
명령을 사용하면 마지막 교착 상태에 대한 정보 만 표시됩니다. 부정 기적으로 발생하는InnoDB
의 교착 상태는InnoDB
에 의해 즉시 상황을 감지하고 자동으로 트랜잭션 중 하나가 롤백되기 때문에 반드시 문제가되는 것은 없습니다. 응용 프로그램에 롤백을 감지하고 작업을 다시 시도하기위한 적절한 오류 처리 로직이 존재하지 않는 경우 교착 상태가 발생하는 원인에 대해 문제를 해결하는 경우에이 옵션을 사용하면 좋을 것입니다. 다수의 교착 상태가 발생하면 각 트랜잭션이 같은 순서로 테이블에 액세스하도록 (이렇게하면 교착 상태를 방지 할 수 있습니다) 여러 테이블에 대해 DML 또는SELECT ... FOR UPDATE
문을 발행하는 트랜잭션을 재 구축 할 필요가 있음을 나타낼 수 있습니다.innodb_purge_batch_size
명령 줄 형식 --innodb_purge_batch_size = #
시스템 변수 이름 innodb_purge_batch_size
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.2) 유형 integer
기본 20
최소 1
최대 값 5000
허용되는 값 (> = 5.6.3) 유형 integer
기본 300
최소 1
최대 값 5000
Redo 로그 레코드 단위로 표현되는 변경의 입도입니다. 그러면 퍼지 작업이 트리거되어 변경된 버퍼 풀 블록이 디스크로 플러시됩니다. 이 옵션은
innodb_purge_threads =
설정과 함께 성능을 조정하는 데 사용되기 때문에 일반 사용자는 변경할 필요가 없습니다.n
innodb_purge_threads
명령 줄 형식 --innodb_purge_threads = #
시스템 변수 이름 innodb_purge_threads
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (<= 5.6.1) 유형 integer
기본 0
최소 0
최대 값 1
허용되는 값 (> = 5.6.2 <= 5.6.4) 유형 integer
기본 0
최소 0
최대 값 32
허용되는 값 (> = 5.6.5) 유형 integer
기본 1
최소 1
최대 값 32
InnoDB의 퍼지 작업 전용 백그라운드 스레드 수입니다. MySQL 5.6.5에서의 새로운 기본 최소 값인 1은 제거 작업이 마스터 스레드 의 일부가 아니라 항상 백그라운드 스레드에서 실행되는 것을 나타냅니다. 0이 아닌 값으로하면 1 개 이상의 백그라운드 스레드에서 제거 작업이 수행되기 때문에 InnoDB의 내부 충돌을 줄일 수 있으며, 확장 성이 향상됩니다. 이 값을 1보다 크게하면 수많은 개별 퍼지 스레드가 생성되기 때문에 여러 테이블에 DML 작업이 실행되는 시스템의 효율성을 향상시킬 수 있습니다. 최대 값은 32입니다.
innodb_random_read_ahead
도입 5.6.3 명령 줄 형식 --innodb_random_read_ahead = #
시스템 변수 이름 innodb_random_read_ahead
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
InnoDB
의 I / O를 최적화하기 위해 임의의 예측 기술을 사용합니다. 랜덤 예측 기능은InnoDB Plugin
(버전 1.0.4)에서 삭제 되었기 때문에,InnoDB Plugin
이InnoDB
의 " 내장 " 버전이 시점에서는 MySQL 5.5.0에 포함되지 않았습니다. 랜덤 예측은innodb_random_read_ahead
구성 옵션 (기본적으로 비활성화되어 있습니다)과 함께 MySQL 5.1.59 및 5.5.16 이후에 다시 도입되었습니다.다양한 유형의 미리 요청에 대한 성능 고려 사항에 대한 자세한 내용은 섹션 14.13.1.1 "InnoDB 버퍼 풀의 인출 (미리 읽기) 구성" 을 참조하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_read_ahead_threshold
명령 줄 형식 --innodb_read_ahead_threshold = #
시스템 변수 이름 innodb_read_ahead_threshold
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 56
최소 0
최대 값 64
버퍼 풀 페이지를 프리 페치 할 때
InnoDB
에서 사용되는 선형 예측 의 민감도를 제어합니다.InnoDB
가 적어도innodb_read_ahead_threshold
페이지 범위 (64 페이지)에서 연속해서 읽을 경우, 다음의 범위 전체 비동기 읽기가 시작됩니다. 허용되는 값의 범위는 0에서 64까지입니다. MySQL 5.6.1의 시점에서는 값을 0으로하면 예측이 해제됩니다. 5.6.1 이전에서는 값을 0으로하면 64 페이지의 범위의 경계 페이지를 읽을 때 미리 읽기가 트리거되었습니다. 기본 56에서InnoDB
는 다음의 범위 전체 비동기 읽기를 시작하는 데 적어도 56 페이지 범위에서 연속적으로 읽어야합니다.이 예측 메커니즘을 통해 읽은 페이지 수 및 그 중에서 사용되지 않고 버퍼 풀에서 제거되는 수를 파악하면
innodb_read_ahead_threshold
매개 변수를 미세 조정하는 데 도움이됩니다. MySQL 5.5의 시점에서는SHOW ENGINE INNODB STATUS
출력에Innodb_buffer_pool_read_ahead
및Innodb_buffer_pool_read_ahead_evicted
글로벌 상태 변수에서 카운터 정보가 표시됩니다. 이러한 변수는 미리 요청에 따라 버퍼 풀 에 포함되는 페이지 수와 이러한 페이지에서 개별적으로 사용되지 않고 버퍼 풀에서 새우 조치 될 수를 나타냅니다. 이 카운터는 마지막으로 서버가 재시작 된 이후 글로벌 값이 표시됩니다.SHOW ENGINE INNODB STATUS
는 앞 페이지를 읽을 비율 및 이러한 페이지가 액세스되지 않고 삭제되는 비율도 표시됩니다. 초당 평균은 마지막으로SHOW ENGINE INNODB STATUS
가 호출 된 이후 수집 된 통계를 바탕으로 계산되어 출력BUFFER POOL AND MEMORY
섹션에 표시됩니다.자세한 내용은 섹션 14.13.1.1 "InnoDB 버퍼 풀의 인출 (미리 읽기) 구성" 을 참조하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.
innodb_read_io_threads
명령 줄 형식 --innodb_read_io_threads = #
시스템 변수 이름 innodb_read_io_threads
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 4
최소 1
최대 값 64
InnoDB
에서의 읽기 작업에 사용되는 I / O 스레드 수입니다. 기본값은 4입니다. 쓰기 스레드에 대응하는 것은innodb_write_io_threads
입니다. 자세한 내용은 섹션 14.13.6 "InnoDB 백그라운드 I / O 스레드 수 구성" 을 참조하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.참고Linux 시스템에서는 기본
innodb_read_io_threads
설정에서 여러 (일반적으로 12 대보다 많은)의 MySQL 서버를 실행하면innodb_write_io_threads
및 Linux의aio-max-nr
설정이 시스템의 제한을 초과 할 가능성이 있습니다. 이상적으로aio-max-nr
설정을 늘립니다. 해결 방법은 MySQL 구성 옵션 중 하나 또는 모두의 설정을 작게하면 좋을 것입니다.innodb_read_only
도입 5.6.7 명령 줄 형식 --innodb_read_only = #
시스템 변수 이름 innodb_read_only
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
서버를 읽기 전용 모드로 시작합니다. 읽기 전용 미디어에서 데이터베이스 응용 프로그램 또는 데이터 세트를 배포하는 데 사용됩니다. 여러 인스턴스에서 동일한 데이터 디렉토리를 공유 할 때 데이터웨어 하우스에서 사용할 수 있습니다. 사용 지침은 섹션 14.3.1 "읽기 전용 작업에 대한 InnoDB의 구성" 을 참조하십시오.
innodb_replication_delay
명령 줄 형식 --innodb_replication_delay = #
시스템 변수 이름 innodb_replication_delay
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 0
최소 0
최대 값 4294967295
innodb_thread_concurrency
에 도달하면 슬레이브 서버에서 복제 스레드의 지연 (밀리 초)입니다.innodb_rollback_on_timeout
명령 줄 형식 --innodb_rollback_on_timeout
시스템 변수 이름 innodb_rollback_on_timeout
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 OFF
MySQL 5.6에서
InnoDB
는 기본적으로 트랜잭션 시간 초과 마지막 문만 롤백 합니다.--innodb_rollback_on_timeout
을 지정하면 트랜잭션 시간 제한에 따라InnoDB
는 트랜잭션 전체를 중지 롤 (MySQL 4.1과 같은 방식이다).innodb_rollback_segments
도입 5.6.2 명령 줄 형식 --innodb_rollback_segments = #
시스템 변수 이름 innodb_rollback_segments
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 128
최소 1
최대 값 128
트랜잭션 내에서 InnoDB를 사용하는 시스템 테이블 스페이스 에있는 롤백 세그먼트 의 수를 정의합니다. 이 설정은 계속 유효하지만
innodb_undo_logs
으로 바뀝니다.innodb_sort_buffer_size
도입 5.6.4 명령 줄 형식 --innodb_sort_buffer_size = #
시스템 변수 이름 innodb_sort_buffer_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 (5.6.4) 유형 integer
기본 1048576
최소 524288
최대 값 67108864
허용되는 값 (> = 5.6.5) 유형 integer
기본 1048576
최소 65536
최대 값 67108864
InnoDB
인덱스를 만들 때 데이터를 저장하는 데 사용되는 정렬 버퍼의 크기를 지정합니다. 지정된 크기는 내부 정렬 용 메모리에 입력 된 디스크에 기록 된 데이터의 양이 정의됩니다. 이것은 " 실행 " 이라는 것도 있습니다. 병합 단계 동안 지정된 크기의 버퍼 쌍을 " 읽어 " 병합됩니다. 설정이 높을수록, " 실행 " 수 및 병합 수가 적습니다. 이 것은 튜닝의 관점에서 이해하는 데 중요합니다.이 정렬 영역은 후속 인덱스 유지 관리 작업시이 아니라 인덱스를 만들 때 병합 정렬에서만 사용됩니다. 인덱싱이 완료되면 버퍼의 할당이 해제됩니다.
이 옵션의 값은 온라인 DDL 작업시 병렬 DML을 기록하기 위해 임시 로그 파일이 확장되는 양을 제어 할 수 있습니다.
이 설정을 구성 가능해질는 크기가 1048576 바이트 (1M 바이트) 하드 코딩되어있었습니다. 그 값은 현재도 기본 남아 있습니다.
인덱스를 작성하는
ALTER TABLE
또는CREATE TABLE
문이 실행될 때 각각이 옵션에 정의 된 크기를 가진 3 개의 버퍼가 할당됩니다. 또한 포인터에서 정렬을 수행 할 수 있도록 정렬 버퍼의 행에 보조 포인터가 할당됩니다 (이것은 정렬 작업시의 행의 이동과 다릅니다).일반적인 정렬 작업은 다음과 같은 공식을 사용하여 메모리 사용량을 예측할 수 있습니다.
(6 / * FTS_NUM_AUX_INDEX * / * (3 * @@ global.innodb_sort_buffer_size) + 2 * ( @@ global.innodb_sort_buffer_size / dict_index_get_min_size (index) * /) * 8 / * 64-bit sizeof * buf-> tuples * / ")
"
@@ global.innodb_sort_buffer_size / dict_index_get_min_size (index)
" 는 유지되는 최대 튜플 수를 나타냅니다. "2 * (@@ global.innodb_sort_buffer_size / * dict_index_get_min_size (index) * /) * 8 / * 64-bit size of * buf-> tuples * /
는 할당 된 보조 포인터 수를 나타냅니다 " .참고32 비트의 경우 8 대신에 4를 곱합니다.
전체 인덱스에서 병렬 정렬에서는
innodb_ft_sort_pll_degree
설정에 곱합니다.(6 / * FTS_NUM_AUX_INDEX * / @@ global.innodb_ft_sort_pll_degree)
innodb_spin_wait_delay
명령 줄 형식 --innodb_spin_wait_delay = #
시스템 변수 이름 innodb_spin_wait_delay
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 6
최소 0
최대 값 4294967295
스핀 락으로 폴링 사이의 최대 지연입니다. 이 메커니즘의 낮은 수준의 구현은 하드웨어와 운영 체제의 조합에 따라 다르기 때문에 지연은 일정한 시간 간격에 대응하지 않습니다. 기본값은 6입니다. 자세한 내용은 섹션 14.13.10 "스핀 록 폴링 구성" 을 참조하십시오.
innodb_stats_auto_recalc
도입 5.6.6 명령 줄 형식 --innodb_stats_auto_recalc = #
시스템 변수 이름 innodb_stats_auto_recalc
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 ON
테이블의 데이터가 크게 변경된 후에는
InnoDB
에 의해 자동으로 영구 통계 가 다시 계산됩니다. 현재 임계 값은 테이블의 행의 10 %입니다. 이 설정은innodb_stats_persistent
옵션이 활성화되어 있거나CREATE TABLE
또는ALTER TABLE
문에서STATS_PERSISTENT = 1
구가 설정되어있는 경우, 생성 된 테이블에 적용됩니다. 통계를 생성하기 위해 샘플로 검색되는 데이터의 양은innodb_stats_persistent_sample_pages
구성 옵션으로 제어됩니다.innodb_stats_auto_recalc
에 대한 자세한 내용은 섹션 14.13.16.1 "영구 옵티 마이저 통계 매개 변수 구성" 을 참조하십시오.innodb_stats_method
도입 5.6.2 명령 줄 형식 --innodb_stats_method = name
시스템 변수 이름 innodb_stats_method
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 enumeration
기본 nulls_equal
유효한 값 nulls_equal
nulls_unequal
nulls_ignored
InnoDB
테이블의 인덱스 값의 분포에 대한 통계 를 수집 할 때 서버가NULL
값을 처리하는 방법입니다. 이 변수는nulls_equal
,nulls_unequal
및nulls_ignored
의 3 개의 값을 지정할 수 있습니다.nulls_equal
의 경우 모든NULL
인덱스 값을 동일한 값으로 간주,NULL
값의 숫자와 동일한 크기를 갖는 단일 값 그룹을 생성합니다.nulls_unequal
의 경우NULL
값끼리를 동일하게 취급하고, 각각의NULL
은 크기가 1 인 별도의 그룹을 생성합니다.nulls_ignored
의 경우NULL
값은 무시됩니다.테이블 통계를 생성하기 위해 사용하는 방법은 섹션 8.3.7 "InnoDB와 MyISAM 인덱스 통계 컬렉션」 에 기재되어있는 바와 같이, 최적화 프로그램이 쿼리 실행을위한 인덱스를 선택하는 방법에 영향을 미칩니다.
innodb_stats_on_metadata
명령 줄 형식 --innodb_stats_on_metadata
시스템 변수 이름 innodb_stats_on_metadata
변수 범위 글로벌 동적 변수 예 허용되는 값 (<= 5.6.5) 유형 boolean
기본 ON
허용되는 값 (> = 5.6.6) 유형 boolean
기본 OFF
이 변수를 사용하면
SHOW TABLE STATUS
와SHOW INDEX
와 같은 메타 데이터 문이 실행될 때 또는INFORMATION_SCHEMA
테이블TABLES
또는STATISTICS
에 액세스 할 때InnoDB
에 의해 통계 가 업데이트됩니다. (이 업데이트는ANALYZE TABLE
에서 실행되는 것과 비슷합니다.) 해제하면 이러한 작업시InnoDB
에 의해 통계가 업데이트되지 않습니다. 이 설정을 영구적으로 비활성화하면 다수의 테이블 또는 인덱스를 가지는 스키마의 액세스 속도를 높일 수 있습니다.InnoDB
테이블이 관여하는 쿼리 실행 계획 의 안정성도 높일 수 있습니다.설정을 변경하려면
SET GLOBAL innodb_stats_on_metadata =
문을 발행합니다. 여기서mode
는mode
ON
과OFF
중 하나 (또는1
과0
중 하나)입니다. 이 설정을 변경하려면SUPER
권한이 필요합니다. 변경하면 모든 연결 작업이 즉시 영향을받습니다.MySQL 5.6.6의 시점에서는이 변수는 기본적으로 비활성화되어 있습니다. 그 이전은 활성화되어 있습니다.
innodb_stats_persistent
도입 5.6.6 명령 줄 형식 --innodb_stats_persistent = setting
시스템 변수 이름 innodb_stats_persistent
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 ON
유효한 값 OFF
ON
0
1
InnoDB
인덱스 통계가 디스크에 유지되는지 여부를 지정합니다. 그렇지 않으면 자주 통계가 다시 계산 될 가능성이 있습니다. 그러면 쿼리의 실행 계획 이 변경 될 수 있습니다. 테이블이 생성되면이 설정이 각 테이블과 함께 저장됩니다. 테이블을 작성하기 전에 글로벌 수준에서innodb_stats_persistent
을 설정하거나CREATE TABLE
및ALTER TABLE
문에서STATS_PERSISTENT
절을 사용하여 시스템 전체의 설정을 무시하고 개별 테이블의 영구 통계를 구성 할 수도 수 있습니다.이 옵션에 대한 자세한 내용은 섹션 14.13.16.1 "영구 옵티 마이저 통계 매개 변수 구성" 을 참조하십시오.
innodb_stats_persistent_sample_pages
도입 5.6.2 명령 줄 형식 --innodb_stats_persistent_sample_pages = #
시스템 변수 이름 innodb_stats_persistent_sample_pages
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 20
인덱스 컬럼의 중요도 및 기타 통계 (
ANALYZE TABLE
에서 계산 된 통계 등)를 추정 할 때 샘플로 취득되는 인덱스 페이지 의 수입니다. 값을 크게하면 쿼리의 실행 계획 을 개선하는 인덱스 통계의 정확도가 개선되고 있지만InnoDB
테이블에ANALYZE TABLE
을 실행할 때 I / O가 증가하게됩니다. 추가 정보는 섹션 14.13.16.1 "영구 옵티 마이저 통계 매개 변수 구성" 을 참조하십시오.참고innodb_stats_persistent_sample_pages
에 큰 값을 설정하면ANALYZE TABLE
의 실행 시간이 길어질 수 있습니다. 액세스되는 데이터베이스 페이지 수를 추정하는 방법은 섹션 14.13.17 "InnoDB 테이블에 ANALYZE TABLE의 복잡성 추정" 을 참조하십시오.이 옵션은 테이블에서
innodb_stats_persistent
설정이 켜져있는 경우에만 적용됩니다. 이 옵션이 테이블에서 꺼져 있다면, 대신innodb_stats_transient_sample_pages
설정이 적용됩니다.innodb_stats_sample_pages
비추천 5.6.3 명령 줄 형식 --innodb_stats_sample_pages = #
시스템 변수 이름 innodb_stats_sample_pages
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 8
최소 1
최대 값 2 ** 64-1
비추천입니다. 대신
innodb_stats_transient_sample_pages
을 사용하십시오.innodb_stats_transient_sample_pages
도입 5.6.2 명령 줄 형식 --innodb_stats_transient_sample_pages = #
시스템 변수 이름 innodb_stats_transient_sample_pages
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 8
인덱스 컬럼의 중요도 및 기타 통계 (
ANALYZE TABLE
에서 계산 된 통계 등)를 추정 할 때 샘플로 취득되는 인덱스 페이지 의 수입니다. 기본값은 8입니다. 값을 크게하면 인덱스 통계의 정확성이 개선됩니다. 그러면 쿼리의 실행 계획 을 개선 할 수 있지만,InnoDB
테이블을 열거 나 통계를 다시 계산할 때 I / O가 증가하는 희생이 따릅니다. 자세한 내용은 섹션 14.13.16.2 "비 영구 옵티 마이저 통계 매개 변수 구성" 을 참조하십시오.참고innodb_stats_transient_sample_pages
에 큰 값을 설정하면ANALYZE TABLE
의 실행 시간이 길어질 수 있습니다. 액세스되는 데이터베이스 페이지 수를 추정하는 방법은 섹션 14.13.17 "InnoDB 테이블에 ANALYZE TABLE의 복잡성 추정" 을 참조하십시오.이 옵션은 테이블에서
innodb_stats_persistent
설정이 꺼져있는 경우에만 적용됩니다. 이 옵션이 테이블에서 선택되어 있다면, 대신innodb_stats_persistent_sample_pages
설정이 적용됩니다.innodb_stats_sample_pages
옵션의 위치를 가져옵니다.innodb_status_output
도입 5.6.16 명령 줄 형식 --innodb_status_output
시스템 변수 이름 innodb_status_output
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
표준
InnoDB
Monitor의 정기적 인 출력을 활성화하거나 비활성화하는 데 사용됩니다. 또한InnoDB
Lock Monitor의 정기적 인 출력을 활성화하거나 비활성화 할 때innodb_status_output_locks
와 함께 사용됩니다. 자세한 내용은 섹션 14.15 "InnoDB 모니터" 를 참조하십시오.innodb_status_output_locks
도입 5.6.16 명령 줄 형식 --innodb_status_output_locks
시스템 변수 이름 innodb_status_output_locks
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
InnoDB
Lock Monitor의 정기적 인 출력을 활성화하거나 비활성화하는 데 사용됩니다.innodb_status_output
와 함께 사용해야합니다. 자세한 내용은 섹션 14.15 "InnoDB 모니터" 를 참조하십시오.innodb_strict_mode
명령 줄 형식 --innodb_strict_mode = #
시스템 변수 이름 innodb_strict_mode
변수 범위 글로벌 세션 동적 변수 예 허용되는 값 유형 boolean
기본 OFF
innodb_strict_mode
을ON
하면InnoDB
는 특정 조건에 해당하는 경고가 아니라 오류를 반환합니다. 기본값은OFF
입니다.엄격 모드 는 SQL의 무시할 수있는 오타 나 문법 오류 또는 조작 모드와 SQL 문의 다양한 조합에 의한 의도하지 않은 다른 결과으로부터 보호하는 데 도움이됩니다.
innodb_strict_mode
을ON
하면InnoDB
는 경고를 발행하여 지정된 문을 처리하는 (의도하지 않은 동작을 수반 할 가능성이 있습니다) 것이 아니라, 특정한 경우에 오류 상황이 발생합니다. 이것은 MySQL에서 허용되는 SQL 구문을 제어 경고없이 오류를 무시하거나 입력 구문과 데이터 값을 검증 할 것인가를 결정하는 MySQL의sql_mode
와 비슷합니다.innodb_strict_mode
설정하여CREATE TABLE
,ALTER TABLE
및CREATE INDEX
문 구문 오류 처리가 영향을받습니다.innodb_strict_mode
에서 선택한 페이지 크기에 레코드가 너무 큽니다 것이 원인으로,INSERT
또는UPDATE
가 실패하지 않도록 레코드 크기의 체크도 사용할 수 있습니다.오라클은
CREATE TABLE
,ALTER TABLE
및CREATE INDEX
문에서ROW_FORMAT
및KEY_BLOCK_SIZE
절을 사용할 때,innodb_strict_mode
를 사용하는 것이 추천되고 있습니다.innodb_strict_mode
를OFF
하면InnoDB
는 경쟁 어구를 무시하고 테이블이나 인덱스를 만들고 메시지 로그에 경고 만 표시됩니다. 결과로 생성 된 테이블에서는 압축 된 테이블을 만들려고해도 압축되지 않는 등 의도 한 것과 다른 동작이 발생할 수 있습니다.innodb_strict_mode
을ON
하면 이러한 문제가 발생하면 즉시 오류가 생성 된 테이블 또는 인덱싱되지 않기 때문에 이후의 문제 해결 세션이 방지됩니다.mysqld
를 시작할 때 명령 행에서 또는my.cnf
또는my.ini
구성 파일 에서innodb_strict_mode
의ON
과OFF
를 전환 할 수 있습니다.SET [GLOBAL | SESSION] innodb_strict_mode =
문을 사용하면 런타임에mode
innodb_strict_mode
을 활성화하거나 비활성화 할 수 있습니다. 여기서
는mode
ON
과OFF
중 하나입니다.GLOBAL
값을 변경하려면SUPER
권한이 필요합니다. 이를 변경하면 이후에 연결된 모든 클라이언트의 작업이 영향을받습니다. 모든 클라이언트가innodb_strict_mode
의SESSION
설정을 변경할 수 있으며, 클라이언트 만 설정의 영향을받습니다.innodb_support_xa
명령 줄 형식 --innodb_support_xa
시스템 변수 이름 innodb_support_xa
변수 범위 글로벌 세션 동적 변수 예 허용되는 값 유형 boolean
기본 TRUE
XA 트랜잭션 2 단계 커밋에서
InnoDB
지원을 활성화합니다. 그러면 트랜잭션을 준비 할 때 추가 디스크 플래시가 발생합니다. 이 설정은 기본입니다. XA 메커니즘은 내부에서 사용되므로 바이너리 로그가 켜져 있고 여러 스레드에서 데이터의 변경이 허용되는 모든 서버에서 중요합니다. 해제하면 라이브 데이터베이스가 커밋 할 때와는 다른 순서로 트랜잭션이 바이너리 로그에 기록 될 수 있습니다. 이렇게하면 재해 복구시와 복제 슬레이브에서 바이너리 로그가 재현 될 때 다른 데이터가 생성 될 수 있습니다. 하나의 스레드 만 데이터를 변경할 수없는 예외적 인 설정을 사용하는 경우를 제외하고 복제 마스터 서버는 해제하지 마십시오.하나의 스레드에서 데이터 변경 만 허용되는 서버에서는
InnoDB
테이블의 성능을 개선하기 위해이 옵션을 선택하는 것이 안전하며 권장하고 있습니다. 예를 들어, 복제 SQL 스레드 만 데이터를 변경하는 리플리케이션 슬레이브는 해제 할 수 있습니다.또한 안전한 바이너리 로깅 또는 복제에 필요 아니라 외부의 XA 트랜잭션 관리자를 사용하지 않는 경우에도이 옵션을 해제 할 수 있습니다.
innodb_sync_array_size
도입 5.6.3 명령 줄 형식 --innodb_sync_array_size = #
시스템 변수 이름 innodb_sync_array_size
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 1
최소 1
최대 값 1024
대량의 대기 thread를 포함한 워크로드의 동시성을 높이기 위해 스레드의 조정에 사용되는 내부 데이터 구조를 나눕니다. 이 설정은 MySQL 인스턴스 시작시 구성해야 나중에 수정할 수 없습니다. 대량의 (일반적으로 768 이상) 대기중인 스레드가 빈번하게 생성되는 워크로드에서는이 옵션 값을 크게하는 것이 좋습니다.
innodb_sync_spin_loops
명령 줄 형식 --innodb_sync_spin_loops = #
시스템 변수 이름 innodb_sync_spin_loops
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 30
최소 0
최대 값 4294967295
스레드가 중단되기 전에
InnoDB
상호 배타적 잠금이 해제 될 때까지 스레드가 대기하는 횟수입니다. 기본값은 30입니다.innodb_table_locks
명령 줄 형식 --innodb_table_locks
시스템 변수 이름 innodb_table_locks
변수 범위 글로벌 세션 동적 변수 예 허용되는 값 유형 boolean
기본 TRUE
autocommit = 0
의 요구를 받아들입니다. MySQL은 모든 스레드가 테이블에 대한 모든 잠금을 해제 할 때까지의 경우,
InnoDB는
LOCK TABLESLOCK TABLES ... WRITE
에서 돌아 가지 않습니다.innodb_table_locks
의 디폴트 값은 1입니다. 이것은autocommit = 0
.의 경우,LOCK TABLES
에 의해 InnoDB 테이블을 내부적으로 잠글 것을 의미합니다.MySQL 5.6에서는
LOCK TABLES ... WRITE
를 사용하여 명시 적으로 잠긴 테이블에는innodb_table_locks = 0
이 잘못되었습니다.LOCK TABLES ... WRITE
암시 적으로 (예를 들어, 트리거를 사용하여) 또는LOCK TABLES ... READ
하여 읽기 또는 쓰기에 잠긴 테이블은 유효합니다.innodb_thread_concurrency
명령 줄 형식 --innodb_thread_concurrency = #
시스템 변수 이름 innodb_thread_concurrency
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 0
최소 0
최대 값 1000
InnoDB
는이 변수에서 지정된 제한 이하의 숫자 운영 체제 스레드를 동시에InnoDB
내부에 유지하려고 시도합니다 (InnoDB
는 사용자 트랜잭션을 처리 할 때 운영 체제 스레드가 사용됩니다). 스레드 수가이 제한에 도달하면 이후 스레드는 실행 때까지 " 선입 선출 " (FIFO) 큐에서 대기합니다. 락을 대기하고있는 thread는 병렬 실행중인 스레드 수에 포함되지 않습니다.이 변수의 범위는 0에서 1000까지입니다. 값 0 (기본값)은 무제한의 병렬성 (병렬 검사 없음)로 해석됩니다. 스레드 동시성 체크를 해제하면
InnoDB
는 필요한만큼의 스레드를 만들 수 있습니다. 값을 0으로하면InnoDB 내부 쿼리
및SHOW ENGINE INNODB STATUS
출력의ROW OPERATIONS
섹션에있는큐 카운터의 쿼리
도 해제됩니다.MySQL 인스턴스와 다른 응용 프로그램에서 CPU 리소스를 공유하고 있거나 워크로드 또는 병렬 사용자 수가 증가하는 경우이 변수를 설정하는 것을 고려하십시오. 적절한 설정은 워크로드 컴퓨팅 환경 및 실행중인 MySQL 버전에 따라 다릅니다. 최적의 성능을 제공하는 설정을 결정하려면 다양한 값을 테스트해야합니다.
innodb_thread_concurrency
는 동적 변수이기 때문에 이것을 사용하면 실시간 테스트 시스템에서 다양한 설정을 시도 할 수 있습니다. 특정 설정에 성능이 저하 된 경우에는 즉시innodb_thread_concurrency
를 0으로 설정하십시오.다음 지침에 따라 적절한 설정을 찾아 유지하는 데 도움이됩니다.
워크로드에 대한 병렬 사용자 스레드의 수가 64보다 적은 경우는
innodb_thread_concurrency = 0
을 설정합니다.워크로드의 부하가 항상 많거나 가끔 급상승하는 경우는 처음에
innodb_thread_concurrency = 128
을 설정하고 최적의 성능을 제공하는 스레드 수를 찾을 때까지 값을 96,80,64과 작게 하십시오. 예를 들어, 시스템에 일반적으로 40 - 50의 사용자가 존재하지만 정기적으로 그 수가 60,70, 심지어 200까지 상승한다고 가정합니다. 성능은 병렬 사용자가 80 일 때는 안정되어 있지만,이 수를 상회 할 것으로 저하가 보이기 시작합니다. 이 경우 성능에 영향을 회피하려면innodb_thread_concurrency = 80
를 설정합니다.InnoDB
에서 사용자 스레드에 대해 특정 수보다 vCPU (예를 들어, 20 개의 vCPU)가 사용되지 않도록하려면innodb_thread_concurrency
을 그 수 (또는 실적에 따라 더 작은 숫자)로 설정합니다. MySQL을 다른 응용 프로그램에서 분리하는 것이 목적인 경우는 독점적으로mysqld
프로세스를 vCPU에 바인딩하는 것을 고려해보십시오. 그러나mysqld
프로세스의 부하가 항상 높은 것은 아니다 경우 독점 바인딩에 따라 최적의 하드웨어의 사용이 실현되지 않을 수 있습니다. 이 경우,mysqld
프로세스를 vCPU에 바인딩이 다른 응용 프로그램도 vCPU의 일부 또는 전부를 사용할 수 있습니다.참고운영 체제의 관점에서 보면,
mysqld
프로세스를 바인딩하는 것보다 자원 관리 솔루션을 사용하여 (사용 가능한 경우) 응용 프로그램간에 CPU 시간을 공유하는 방법을 관리하는 것이 적절한 경우가 있습니다. 예를 들어, 다른 중요한 프로세스가 실행되고 있지 않은 경우 vCPU 시간의 90 %를 특정 응용 프로그램에 할당하고 다른 중요한 프로세스가 실행되고 있는 경우는 그 값을 40 %로 되돌립니다.innodb_thread_concurrency
값이 너무 크면 시스템 내부 및 자원에 대한 경합이 증가하기 때문에 성능이 저하 될 수 있습니다.경우에 따라 최적의
innodb_thread_concurrency
가 vCPU 수보다 적을 수도 있습니다.정기적으로 시스템을 모니터링하고 분석합니다. 워크로드, 사용자 수 또는 컴퓨팅 환경을 변경하기 위해
innodb_thread_concurrency
설정 조정이 필요할 수 있습니다.
자세한 내용은 섹션 14.13.5 "InnoDB의 스레드 병렬성 구성" 을 참조하십시오.
innodb_thread_sleep_delay
명령 줄 형식 --innodb_thread_sleep_delay = #
시스템 변수 이름 innodb_thread_sleep_delay
변수 범위 글로벌 동적 변수 예 허용되는 값 (> = 5.6.17) 유형 integer
기본 10000
최소 0
최대 값 1000000
허용되는 값 (32 비트 플랫폼, <= 5.6.16) 유형 integer
기본 10000
최소 0
최대 값 4294967295
허용되는 값 (64 비트 플랫폼, <= 5.6.16) 유형 integer
기본 10000
최소 0
최대 값 18446744073709551615
InnoDB
큐에 참여하기까지,InnoDB
쓰레드가 잠들기 기간 (마이크로 초)입니다. 기본값은 10000입니다. 0의 값은 절전 모드를 해제합니다. MySQL 5.6.3 이후에서는 구성 옵션innodb_adaptive_max_sleep_delay
을innodb_thread_sleep_delay
에서 허용되는 최대 값으로 설정할 수있어 InnoDB에 의해 자동으로 현재의 thread 스케줄링 활동에 따라innodb_thread_sleep_delay
가 상하로 조정됩니다. 이 동적 조정 시스템에 걸리는 부하가 적은 기간이나 시스템이 거의 가득 찬 용량으로 작동하는 기간 스레드 스케줄링 메커니즘이 원활하게 작동하는 데 도움이됩니다.자세한 내용은 섹션 14.13.5 "InnoDB의 스레드 병렬성 구성" 을 참조하십시오.
innodb_undo_directory
도입 5.6.3 명령 줄 형식 --innodb_undo_directory = dir_name
시스템 변수 이름 innodb_undo_directory
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 디렉토리 이름
기본 .
InnoDB
가 Undo 로그에 대한 별도의 테이블 스페이스를 작성하는 디렉토리의 상대 경로 나 절대 경로입니다. 일반적으로 이러한 로그를 다른 저장 장치에 배치하는 데 사용됩니다.innodb_undo_logs
및innodb_undo_tablespaces
와 함께 사용하면 시스템 테이블 스페이스 외부의 Undo 로그 디스크 레이아웃이 결정됩니다. 기본값.
은InnoDB
가 기본으로 다른 로그 파일을 작성하는 디렉토리와 같은임을 나타냅니다.innodb_undo_logs
도입 5.6.3 명령 줄 형식 --innodb_undo_logs = #
시스템 변수 이름 innodb_undo_logs
변수 범위 글로벌 동적 변수 예 허용되는 값 유형 integer
기본 128
최소 0
최대 값 128
트랜잭션 내에서
InnoDB
를 사용하는 시스템 테이블 스페이스 에있는 롤백 세그먼트 의 수를 정의합니다. 이 설정은 Undo 로그 관련 상호 배타적 경쟁이 관찰 된 경우의 성능 튜닝에 적합합니다.innodb_rollback_segments
설정에서 대체되었습니다. 활성 Undo 로그가 아닌 사용 가능한 Undo 로그의 총 수는Innodb_available_undo_logs
상태 변수를 참조하십시오.트랜잭션에서 사용되는 롤백 세그먼트의 수는 크게하거나 작게 할 수 있지만 시스템에 물리적으로 존재하는 롤백 세그먼트의 수는 감소하지 않습니다. 따라서 나중에 필요하지 않으면 롤백 세그먼트가 할당되는 것을 방지하기 위해이 매개 변수는 작은 값에서 시작하여 점차 증가하는 것이 좋습니다.
innodb_undo_logs
가 설정되어 있지 않으면 기본 최대 값이 128입니다. 롤백 세그먼트의 관리 내용은 섹션 14.2.12 "InnoDB 멀티 버전" 을 참조하십시오.innodb_undo_tablespaces
도입 5.6.3 명령 줄 형식 --innodb_undo_tablespaces = #
시스템 변수 이름 innodb_undo_tablespaces
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 0
최소 0
최대 값 126
제로 이외의
innodb_undo_logs
설정을 사용하는 경우 Undo 로그 가 분할되는 테이블 공간 파일의 수입니다. 기본적으로 모든 Undo 로그는 시스템 테이블 공간 의 일부이며, 시스템 테이블 스페이스는innodb_undo_tablespaces
로 구성된 것 이외에 항상 하나의 Undo 테이블 스페이스가 포함되어 있습니다. 장기 실행 트랜잭션 중에 Undo 로그가 커질 가능성이 있기 때문에 Undo 로그를 여러 테이블 스페이스에 분할하면 어떤 하나의 테이블 스페이스의 최대 크기가 줄어 듭니다. 테이블 공간 파일은innodb_undo_directory
에서 정의 된 위치에undo
형식의 이름으로 작성됩니다. 여기서N
N
은 선행 0을 포함 일련의 연속하는 정수입니다. Undo 테이블 스페이스 파일의 기본 크기는 10M입니다. 처음InnoDB
를 초기화 할 때innodb_undo_tablespaces
수를 설정해야합니다. 먼저 데이터베이스를 만들 때 지정한 경우보다 많은 수의 Undo 테이블 스페이스를 가진InnoDB
를 다시 시작하려고하면 시작에 실패하고InnoDB
에서 예상 된 수의 Undo 테이블 스페이스가 찾지 못했음 라는 오류가 표시됩니다.innodb_use_native_aio
명령 줄 형식 --innodb_use_native_aio = #
시스템 변수 이름 innodb_use_native_aio
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 ON
Linux 비동기 I / O 서브 시스템을 사용할지 여부를 지정합니다. 이 변수는 Linux 시스템에만 적용되며, 서버의 실행 중은 변경할 수 없습니다. 이 옵션은 기본적으로 활성화되어 있기 때문에 일반적으로 만질 필요가 없습니다.
MySQL 5.5의 시점에서는 Windows 시스템에서
InnoDB
에 제공되는 비동기 I / O 기능이 Linux 시스템에서도 사용할 수 있습니다. (기타 Unix와 유사한 시스템에서 계속 동기화 I / O 호출이 사용됩니다.)이 기능은 I / O 부하가 높은 시스템의 확장 성이 향상됩니다. 일반적으로SHOW ENGINE INNODB STATUS \ G
명령의 출력에 수많은 중단 된 읽기 / 쓰기가 표시됩니다.대량의
InnoDB
I / O 스레드와 함께 실행하면 (특히 같은 서버 컴퓨터에서 여러 이러한 인스턴스를 실행할 때), Linux 시스템의 능력 제한을 초과 할 수 있습니다. 이 경우 다음과 같은 오류를받을 수 있습니다.EAGAIN : The specified maxevents exceeds the user 's limit of available events.
일반적으로
/ proc / sys / fs / aio-max-nr
더 큰 제한을 작성하면이 오류를 해결할 수 있습니다.그러나 OS의 비동기 I / O 서브 시스템의 문제로
InnoDB
가 시작되지 않는 경우는innodb_use_native_aio = 0
을 해제하고 (옵션 파일에서innodb_use_native_aio = 0
을 사용합니다) 서버를 시작하십시오. 또한InnoDB
에서tmpdir
위치,tmpfs
파일 시스템 및tmpfs
에서 AIO를 지원하지 않는 Linux 커널 등을 조합 한 잠재적 인 문제가 발견 된 경우이 옵션이 부팅 중에 자동으로 꺼 될 가능성도 있습니다.innodb_use_sys_malloc
비추천 5.6.3 명령 줄 형식 --innodb_use_sys_malloc = #
시스템 변수 이름 innodb_use_sys_malloc
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 boolean
기본 ON
InnoDB
가 운영 체제의 메모리 할당을 사용할 것인지 (ON
) 자신의 것을 사용할 것인지 (OFF
)를 지정합니다. 기본값은ON
입니다. 자세한 내용은 섹션 14.13.3 "InnoDB를위한 메모리 할당 구성" 을 참조하십시오.MySQL 5.6.3의 시점에서는
innodb_use_sys_malloc
는 사용되지 않으며 향후 MySQL 릴리스에서 제거 될 예정입니다.innodb_version
InnoDB
의 버전 번호입니다. 5.6.11 이후에서는InnoDB
마다 고유 번호 부여가 폐지되고이 값은version
변수의 번호와 동일합니다.innodb_write_io_threads
명령 줄 형식 --innodb_write_io_threads = #
시스템 변수 이름 innodb_write_io_threads
변수 범위 글로벌 동적 변수 아니오 허용되는 값 유형 integer
기본 4
최소 1
최대 값 64
InnoDB
쓰기 작업에 사용되는 I / O 스레드 수입니다. 기본값은 4입니다. 읽기 스레드에 대응하는 것은innodb_read_io_threads
입니다. 자세한 내용은 섹션 14.13.6 "InnoDB 백그라운드 I / O 스레드 수 구성" 을 참조하십시오. 일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.참고Linux 시스템에서는 기본
innodb_read_io_threads
설정에서 여러 (일반적으로 12 대보다 많은)의 MySQL 서버를 실행하면innodb_write_io_threads
및 Linux의aio-max-nr
설정이 시스템의 제한을 초과 할 가능성이 있습니다. 이상적으로aio-max-nr
설정을 늘립니다. 해결 방법은 MySQL 구성 옵션 중 하나 또는 모두의 설정을 작게하면 좋을 것입니다.
또한 디스크에 바이너리 로그의 동기화 제어 sync_binlog
값도 고려하도록하십시오.
일반적인 I / O 튜닝의 조언은 섹션 8.5.7 "InnoDB 디스크 I / O 최적화" 를 참조하십시오.