Datagrip의 자동 포맷팅 기능은 기본적으로 활성화 되어 있습니다.

 

개인적으로는 오히려 불편하기 때문에 비활성화하여 사용중 입니다.

- 무척 유용한 기능입니다.

 

에디터 창에 세로줄이 표시되어 거슬릴 경우 해제 방법 입니다. 

 

 

DataGrip 에서 조회 결과를 일정시간 간격으로 자동 갱신하는 기능입니다.

조회 결과에서 노란색 영역의 시계 아이콘을 클릭하셔서 자동 갱신할 시간을 선택하시면 됩니다.

 

제목을 어떻게 정의해야할지 모르겠어서 내용을 이미지로 올립니다.

 

 

 

- Show Global variables like '%%';

Variable_name Value Description
activate_all_roles_on_login OFF  
admin_address ""  
admin_port 33062  
admin_ssl_ca ""  
admin_ssl_capath ""  
admin_ssl_cert ""  
admin_ssl_cipher ""  
admin_ssl_crl ""  
admin_ssl_crlpath ""  
admin_ssl_key ""  
admin_tls_ciphersuites ""  
admin_tls_version TLSv1,TLSv1.1,TLSv1.2,TLSv1.3  
auto_generate_certs ON  
auto_increment_increment 1 ✔️ Auto increment 컬럼의 증가값을 결정
auto_increment_offset 1 ✔️ Auto increment 컬럼의 초기 시작값을 지정
autocommit ON  
automatic_sp_privileges ON  
avoid_temporal_upgrade OFF  
back_log 80  
basedir C:\Program Files\MySQL\MySQL Server 8.0\  
big_tables OFF  
bind_address *  
binlog_cache_size 32768  
binlog_checksum CRC32  
binlog_direct_non_transactional_updates OFF  
binlog_encryption OFF  
binlog_error_action ABORT_SERVER  
binlog_expire_logs_seconds 2592000  
binlog_format ROW ✔️ Replication Slave 서버는 이벤트를 지정된 포맷으로 읽는다.
✔️ STATEMENT(1): 명령문 기반 리플리케이션
✔️ ROW(2): 열 기반 리플리케이션
✔️ MIXED(3): 혼합 기반 리플리케이션
binlog_group_commit_sync_delay 0  
binlog_group_commit_sync_no_delay_count 0  
binlog_gtid_simple_recovery ON  
binlog_max_flush_queue_time 0  
binlog_order_commits ON  
binlog_rotate_encryption_master_key_at_startup OFF  
binlog_row_event_max_size 8192  
binlog_row_image FULL  
binlog_row_metadata MINIMAL  
binlog_row_value_options ""  
binlog_rows_query_log_events OFF  
binlog_stmt_cache_size 32768  
binlog_transaction_compression OFF  
binlog_transaction_compression_level_zstd 3  
binlog_transaction_dependency_history_size 25000  
binlog_transaction_dependency_tracking COMMIT_ORDER  
block_encryption_mode aes-128-ecb  
bulk_insert_buffer_size 8388608  
caching_sha2_password_auto_generate_rsa_keys ON  
caching_sha2_password_digest_rounds 5000  
caching_sha2_password_private_key_path private_key.pem  
caching_sha2_password_public_key_path public_key.pem  
character_set_client utf8mb4  
character_set_connection utf8mb4  
character_set_database utf8mb4  
character_set_filesystem binary  
character_set_results utf8mb4  
character_set_server utf8mb4  
character_set_system utf8mb3  
character_sets_dir C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\  
check_proxy_users OFF  
collation_connection utf8mb4_0900_ai_ci  
collation_database utf8mb4_0900_ai_ci  
collation_server utf8mb4_0900_ai_ci  
completion_type NO_CHAIN  
concurrent_insert AUTO  
connect_timeout 10 ✔️ mysqld 서버가 불량 핸드셰이크로 응답하기 전에 연결 패킷을 기다리는 시간(초)입니다.
✔️ 기본값은 10초입니다.
✔️ 클라이언트에서 MySQL 서버에 대한 연결이 'XXX'에서 손실된 경우, 시스템 오류: errno 형식의 오류가 자주 발생하는 경우 connect_timeout 값을 증가시키면 도움이 될 수 있습니다.
core_file OFF  
create_admin_listener_thread OFF  
cte_max_recursion_depth 1000  
datadir d:\MySQL\MySQL Server 8.0_25004\Data\  
default_authentication_plugin mysql_native_password  
default_collation_for_utf8mb4 utf8mb4_0900_ai_ci  
default_password_lifetime 0  
default_storage_engine InnoDB  
default_table_encryption OFF  
default_tmp_storage_engine InnoDB  
default_week_format 0  
delay_key_write ON  
delayed_insert_limit 100  
delayed_insert_timeout 300  
delayed_queue_size 1000  
disabled_storage_engines ""  
disconnect_on_expired_password ON  
div_precision_increment 4  
end_markers_in_json OFF  
enforce_gtid_consistency OFF  
eq_range_index_dive_limit 200  
event_scheduler ON  
expire_logs_days 0  
explicit_defaults_for_timestamp ON  
flush OFF  
flush_time 0  
foreign_key_checks ON  
ft_boolean_syntax "+ -><()~*:""""&|"  
ft_max_word_len 84  
ft_min_word_len 4  
ft_query_expansion_limit 20  
ft_stopword_file (built-in)  
general_log OFF  
general_log_file DEV-DB133.log  
generated_random_password_length 20  
group_concat_max_len 1024  
group_replication_consistency EVENTUAL  
gtid_executed ""  
gtid_executed_compression_period 0  
gtid_mode OFF  
gtid_owned ""  
gtid_purged ""  
have_compress YES  
have_dynamic_loading YES  
have_geometry YES  
have_openssl YES  
have_profiling YES  
have_query_cache NO  
have_rtree_keys YES  
have_ssl YES  
have_statement_timeout YES  
have_symlink DISABLED  
histogram_generation_max_mem_size 20000000  
host_cache_size 628  
hostname DEV-DB133  
information_schema_stats_expiry 86400  
init_connect ""  
init_file ""  
init_replica ""  
init_slave ""  
innodb_adaptive_flushing ON  
innodb_adaptive_flushing_lwm 10  
innodb_adaptive_hash_index ON  
innodb_adaptive_hash_index_parts 8  
innodb_adaptive_max_sleep_delay 150000  
innodb_api_bk_commit_interval 5  
innodb_api_disable_rowlock OFF  
innodb_api_enable_binlog OFF  
innodb_api_enable_mdl OFF  
innodb_api_trx_level 0  
innodb_autoextend_increment 64  
innodb_autoinc_lock_mode 2  
innodb_buffer_pool_chunk_size 8388608  
innodb_buffer_pool_dump_at_shutdown ON  
innodb_buffer_pool_dump_now OFF  
innodb_buffer_pool_dump_pct 25  
innodb_buffer_pool_filename ib_buffer_pool  
innodb_buffer_pool_in_core_file ON  
innodb_buffer_pool_instances 1  
innodb_buffer_pool_load_abort OFF  
innodb_buffer_pool_load_at_startup ON  
innodb_buffer_pool_load_now OFF  
innodb_buffer_pool_size 8388608  
innodb_change_buffer_max_size 25  
innodb_change_buffering all  
innodb_checksum_algorithm crc32  
innodb_cmp_per_index_enabled OFF  
innodb_commit_concurrency 0  
innodb_compression_failure_threshold_pct 5  
innodb_compression_level 6  
innodb_compression_pad_pct_max 50  
innodb_concurrency_tickets 5000  
innodb_data_file_path ibdata1:12M:autoextend  
innodb_data_home_dir ""  
innodb_deadlock_detect ON  
innodb_dedicated_server OFF  
innodb_default_row_format dynamic  
innodb_directories ""  
innodb_disable_sort_file_cache OFF  
innodb_doublewrite ON  
innodb_doublewrite_batch_size 0  
innodb_doublewrite_dir ""  
innodb_doublewrite_files 2  
innodb_doublewrite_pages 4  
innodb_extend_and_initialize ON  
innodb_fast_shutdown 1  
innodb_file_per_table ON  
innodb_fill_factor 100  
innodb_flush_log_at_timeout 1  
innodb_flush_log_at_trx_commit 1  
innodb_flush_method unbuffered  
innodb_flush_neighbors 0  
innodb_flush_sync ON  
innodb_flushing_avg_loops 30  
innodb_force_load_corrupted OFF  
innodb_force_recovery 0  
innodb_fsync_threshold 0  
innodb_ft_aux_table ""  
innodb_ft_cache_size 8000000  
innodb_ft_enable_diag_print OFF  
innodb_ft_enable_stopword ON  
innodb_ft_max_token_size 84  
innodb_ft_min_token_size 3  
innodb_ft_num_word_optimize 2000  
innodb_ft_result_cache_limit 2000000000  
innodb_ft_server_stopword_table ""  
innodb_ft_sort_pll_degree 2  
innodb_ft_total_cache_size 640000000  
innodb_ft_user_stopword_table ""  
innodb_idle_flush_pct 100  
innodb_io_capacity 200  
innodb_io_capacity_max 2000  
innodb_lock_wait_timeout 50  
innodb_log_buffer_size 1048576  
innodb_log_checksums ON  
innodb_log_compressed_pages ON  
innodb_log_file_size 50331648  
innodb_log_files_in_group 2  
innodb_log_group_home_dir .\  
innodb_log_spin_cpu_abs_lwm 80  
innodb_log_spin_cpu_pct_hwm 50  
innodb_log_wait_for_flush_spin_hwm 400  
innodb_log_write_ahead_size 8192  
innodb_log_writer_threads ON  
innodb_lru_scan_depth 1024  
innodb_max_dirty_pages_pct 90.000000  
innodb_max_dirty_pages_pct_lwm 10.000000  
innodb_max_purge_lag 0  
innodb_max_purge_lag_delay 0  
innodb_max_undo_log_size 1073741824  
innodb_monitor_disable ""  
innodb_monitor_enable ""  
innodb_monitor_reset ""  
innodb_monitor_reset_all ""  
innodb_old_blocks_pct 37  
innodb_old_blocks_time 1000  
innodb_online_alter_log_max_size 134217728  
innodb_open_files 300  
innodb_optimize_fulltext_only OFF  
innodb_page_cleaners 1  
innodb_page_size 16384  
innodb_parallel_read_threads 4  
innodb_print_all_deadlocks OFF  
innodb_print_ddl_logs OFF  
innodb_purge_batch_size 300  
innodb_purge_rseg_truncate_frequency 128  
innodb_purge_threads 4  
innodb_random_read_ahead OFF  
innodb_read_ahead_threshold 56  
innodb_read_io_threads 4  
innodb_read_only OFF  
innodb_redo_log_archive_dirs ""  
innodb_redo_log_encrypt OFF  
innodb_replication_delay 0  
innodb_rollback_on_timeout OFF  
innodb_rollback_segments 128  
innodb_segment_reserve_factor 12.500000  
innodb_sort_buffer_size 1048576  
innodb_spin_wait_delay 6  
innodb_spin_wait_pause_multiplier 50  
innodb_stats_auto_recalc ON  
innodb_stats_include_delete_marked OFF  
innodb_stats_method nulls_equal  
innodb_stats_on_metadata OFF  
innodb_stats_persistent ON  
innodb_stats_persistent_sample_pages 20  
innodb_stats_transient_sample_pages 8  
innodb_status_output OFF  
innodb_status_output_locks OFF  
innodb_strict_mode ON  
innodb_sync_array_size 1  
innodb_sync_spin_loops 30  
innodb_table_locks ON  
innodb_temp_data_file_path ibtmp1:12M:autoextend  
innodb_temp_tablespaces_dir .\#innodb_temp\  
innodb_thread_concurrency 17  
innodb_thread_sleep_delay 0  
innodb_tmpdir ""  
innodb_undo_directory .\  
innodb_undo_log_encrypt OFF  
innodb_undo_log_truncate ON  
innodb_undo_tablespaces 2  
innodb_use_fdatasync OFF  
innodb_use_native_aio ON  
innodb_validate_tablespace_paths ON  
innodb_version 8.0.26  
innodb_write_io_threads 4  
interactive_timeout 28800  
internal_tmp_mem_storage_engine TempTable  
join_buffer_size 262144  
keep_files_on_create OFF  
key_buffer_size 8388608  
key_cache_age_threshold 300  
key_cache_block_size 1024  
key_cache_division_limit 100  
keyring_operations ON  
large_files_support ON  
large_page_size 0  
large_pages OFF  
lc_messages en_US  
lc_messages_dir C:\Program Files\MySQL\MySQL Server 8.0\share\  
lc_time_names en_US  
license GPL  
local_infile OFF  
lock_wait_timeout 31536000 ✔️ lock 이 걸린 테이블에 질의를 할때 락이 풀리기 까지 대기할 시간
✔️ innodb 테이블 에서도 본 시간에 따라  lock wait 후 "Lock wait timeout exceeded; try restarting transaction" 오류 발생
log_bin ON  
log_bin_basename d:\MySQL\MySQL Server 8.0_25004\Data\DEV-DB133-bin  
log_bin_index d:\MySQL\MySQL Server 8.0_25004\Data\DEV-DB133-bin.index  
log_bin_trust_function_creators OFF  
log_bin_use_v1_row_events OFF  
log_error .\DEV-DB133.err  
log_error_services log_filter_internal; log_sink_internal  
log_error_suppression_list ""  
log_error_verbosity 2  
log_output FILE  
log_queries_not_using_indexes OFF ✔️ 인덱스를 사용하지 않은 쿼리도 slow query log에 기록함
log_raw OFF  
log_replica_updates ON  
log_slave_updates ON  
log_slow_admin_statements OFF  
log_slow_extra OFF  
log_slow_replica_statements OFF  
log_slow_slave_statements OFF  
log_statements_unsafe_for_binlog ON  
log_throttle_queries_not_using_indexes 0  
log_timestamps UTC  
long_query_time 1.000000  
low_priority_updates OFF  
lower_case_file_system ON  
lower_case_table_names 1  
mandatory_roles ""  
master_info_repository TABLE  
master_verify_checksum OFF  
max_allowed_packet 4194304  
max_binlog_cache_size 18446744073709547520  
max_binlog_size 1073741824  
max_binlog_stmt_cache_size 18446744073709547520  
max_connect_errors 100 ✔️ 호스트 연속 연결 요청이 연결에 성공하지 못한 상태에서 중단되면 서버는 해당 호스트를 추가 연결에서 차단합니다. 
✔️ 이전 연결이 중단된 후 max_connect_errors 시도 횟수보다 적은 시간 내에 호스트로부터의 연결이 성공적으로 설정된 경우 호스트의 오류 수는 0으로 지워집니다.
✔️ 차단된 호스트의 차단을 해제하려면 호스트 캐시를 플러시합니다.
max_connections 500 ✔️ 최대 동시 클라이언트 연결 수입니다.
max_delayed_threads 20  
max_digest_length 1024  
max_error_count 1024  
max_execution_time 0  
max_heap_table_size 16777216  
max_insert_delayed_threads 20  
max_join_size 18446744073709551615  
max_length_for_sort_data 4096  
max_points_in_geometry 65536  
max_prepared_stmt_count 16382  
max_relay_log_size 0  
max_seeks_for_key 4294967295  
max_sort_length 1024  
max_sp_recursion_depth 0  
max_user_connections 0 ✔️ 지정된 MySQL 사용자 계정에 허용된 최대 동시 연결 수입니다.
✔️ 값이 0(기본값)이면 "제한 없음"을 의미합니다.
✔️ 이 변수는 서버 시작 또는 런타임에 설정할 수 있는 전역 값을 가집니다. 또한 현재 세션과 연결된 계정에 적용되는 유효한 동시 연결 제한을 나타내는 읽기 전용 세션 값도 있습니다.
✔️ 세션 값은 다음과 같이 초기화됩니다.
- 사용자 계정에 0이 아닌 MAX_USER_CONNECTION 리소스 제한이 있는 경우 세션 max_user_connections 값이 해당 제한으로 설정됩니다.
그렇지 않으면 세션 max_user_connections 값이 글로벌 값으로 설정됩니다.
- 계정 리소스 제한은 CREATE USER 또는 ALTER USER 문을 사용하여 지정됩니다.
max_write_lock_count 4294967295  
min_examined_row_limit 0  
myisam_data_pointer_size 6  
myisam_max_sort_file_size 107374182400  
myisam_mmap_size 18446744073709551615  
myisam_recover_options OFF  
myisam_repair_threads 1  
myisam_sort_buffer_size 52428800  
myisam_stats_method nulls_unequal  
myisam_use_mmap OFF  
mysql_native_password_proxy_users OFF  
mysqlx_bind_address *  
mysqlx_compression_algorithms DEFLATE_STREAM,LZ4_MESSAGE,ZSTD_STREAM  
mysqlx_connect_timeout 30  
mysqlx_deflate_default_compression_level 3  
mysqlx_deflate_max_client_compression_level 5  
mysqlx_document_id_unique_prefix 0  
mysqlx_enable_hello_notice ON  
mysqlx_idle_worker_thread_timeout 60  
mysqlx_interactive_timeout 28800  
mysqlx_lz4_default_compression_level 2  
mysqlx_lz4_max_client_compression_level 8  
mysqlx_max_allowed_packet 67108864  
mysqlx_max_connections 100  
mysqlx_min_worker_threads 2  
mysqlx_port 33060  
mysqlx_port_open_timeout 0  
mysqlx_read_timeout 30  
mysqlx_socket /tmp/mysqlx.sock  
mysqlx_ssl_ca ""  
mysqlx_ssl_capath ""  
mysqlx_ssl_cert ""  
mysqlx_ssl_cipher ""  
mysqlx_ssl_crl ""  
mysqlx_ssl_crlpath ""  
mysqlx_ssl_key ""  
mysqlx_wait_timeout 28800  
mysqlx_write_timeout 60  
mysqlx_zstd_default_compression_level 3  
mysqlx_zstd_max_client_compression_level 11  
named_pipe OFF  
named_pipe_full_access_group ""  
net_buffer_length 16384  
net_read_timeout 30  
net_retry_count 10  
net_write_timeout 60  
new OFF  
ngram_token_size 2  
offline_mode OFF  
old OFF  
old_alter_table OFF  
open_files_limit 6558  
optimizer_prune_level 1  
optimizer_search_depth 62  
optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on,hash_join=on,subquery_to_derived=off,prefer_ordering_index=on,hypergraph_optimizer=off,derived_condition_pushdown=on  
optimizer_trace enabled=off,one_line=off  
optimizer_trace_features greedy_search=on,range_optimizer=on,dynamic_range=on,repeated_subselect=on  
optimizer_trace_limit 1  
optimizer_trace_max_mem_size 1048576  
optimizer_trace_offset -1  
parser_max_mem_size 18446744073709551615  
partial_revokes OFF  
password_history 0  
password_require_current OFF  
password_reuse_interval 0  
performance_schema ON  
performance_schema_accounts_size -1  
performance_schema_digests_size 10000  
performance_schema_error_size 4946  
performance_schema_events_stages_history_long_size 10000  
performance_schema_events_stages_history_size 10  
performance_schema_events_statements_history_long_size 10000  
performance_schema_events_statements_history_size 10  
performance_schema_events_transactions_history_long_size 10000  
performance_schema_events_transactions_history_size 10  
performance_schema_events_waits_history_long_size 10000  
performance_schema_events_waits_history_size 10  
performance_schema_hosts_size -1  
performance_schema_max_cond_classes 100  
performance_schema_max_cond_instances -1  
performance_schema_max_digest_length 1024  
performance_schema_max_digest_sample_age 60  
performance_schema_max_file_classes 80  
performance_schema_max_file_handles 32768  
performance_schema_max_file_instances -1  
performance_schema_max_index_stat -1  
performance_schema_max_memory_classes 450  
performance_schema_max_metadata_locks -1  
performance_schema_max_mutex_classes 300  
performance_schema_max_mutex_instances -1  
performance_schema_max_prepared_statements_instances -1  
performance_schema_max_program_instances -1  
performance_schema_max_rwlock_classes 60  
performance_schema_max_rwlock_instances -1  
performance_schema_max_socket_classes 10  
performance_schema_max_socket_instances -1  
performance_schema_max_sql_text_length 1024  
performance_schema_max_stage_classes 175  
performance_schema_max_statement_classes 218  
performance_schema_max_statement_stack 10  
performance_schema_max_table_handles -1  
performance_schema_max_table_instances -1  
performance_schema_max_table_lock_stat -1  
performance_schema_max_thread_classes 100  
performance_schema_max_thread_instances -1  
performance_schema_session_connect_attrs_size 512  
performance_schema_setup_actors_size -1  
performance_schema_setup_objects_size -1  
performance_schema_show_processlist OFF  
performance_schema_users_size -1  
persist_only_admin_x509_subject ""  
persisted_globals_load ON  
pid_file d:\MySQL\MySQL Server 8.0_25004\Data\DEV-DB133.pid  
plugin_dir C:\Program Files\MySQL\MySQL Server 8.0\lib\plugin\  
port 25004  
preload_buffer_size 32768  
print_identified_with_as_hex OFF  
profiling OFF  
profiling_history_size 15  
protocol_compression_algorithms zlib,zstd,uncompressed  
protocol_version 10  
query_alloc_block_size 8192  
query_prealloc_size 8192  
range_alloc_block_size 4096  
range_optimizer_max_mem_size 8388608  
rbr_exec_mode STRICT  
read_buffer_size 65536  
read_only OFF  
read_rnd_buffer_size 262144  
regexp_stack_limit 8000000  
regexp_time_limit 32  
relay_log DEV-DB133-relay-bin  
relay_log_basename d:\MySQL\MySQL Server 8.0_25004\Data\DEV-DB133-relay-bin  
relay_log_index d:\MySQL\MySQL Server 8.0_25004\Data\DEV-DB133-relay-bin.index  
relay_log_info_file relay-log.info  
relay_log_info_repository TABLE  
relay_log_purge ON  
relay_log_recovery OFF  
relay_log_space_limit 0  
replica_allow_batching OFF  
replica_checkpoint_group 512  
replica_checkpoint_period 300  
replica_compressed_protocol OFF  
replica_exec_mode STRICT  
replica_load_tmpdir C:\Windows\SERVIC~1\NETWOR~1\AppData\Local\Temp  
replica_max_allowed_packet 1073741824  
replica_net_timeout 60  
replica_parallel_type DATABASE  
replica_parallel_workers 0  
replica_pending_jobs_size_max 134217728  
replica_preserve_commit_order OFF  
replica_skip_errors OFF  
replica_sql_verify_checksum ON  
replica_transaction_retries 10  
replica_type_conversions ""  
replication_optimize_for_static_plugin_config OFF  
replication_sender_observe_commit_only OFF  
report_host ""  
report_password ""  
report_port 25004  
report_user ""  
require_secure_transport OFF  
rpl_read_size 8192  
rpl_stop_replica_timeout 31536000  
rpl_stop_slave_timeout 31536000  
schema_definition_cache 256  
secondary_engine_cost_threshold 100000.000000  
secure_file_priv d:\MySQL\MySQL Server 8.0_25004\Uploads\  
select_into_buffer_size 131072  
select_into_disk_sync OFF  
select_into_disk_sync_delay 0  
server_id 1  
server_id_bits 32  
server_uuid 29f4b9a  
session_track_gtids OFF  
session_track_schema ON  
session_track_state_change OFF  
session_track_system_variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection  
session_track_transaction_info OFF  
sha256_password_auto_generate_rsa_keys ON  
sha256_password_private_key_path private_key.pem  
sha256_password_proxy_users OFF  
sha256_password_public_key_path public_key.pem  
shared_memory OFF  
shared_memory_base_name MYSQL  
show_create_table_verbosity OFF  
show_old_temporals OFF  
skip_external_locking ON  
skip_name_resolve OFF  
skip_networking OFF  
skip_replica_start OFF  
skip_show_database OFF  
skip_slave_start OFF  
slave_allow_batching OFF  
slave_checkpoint_group 512  
slave_checkpoint_period 300  
slave_compressed_protocol OFF  
slave_exec_mode STRICT  
slave_load_tmpdir C:\Windows\SERVIC~1\NETWOR~1\AppData\Local\Temp  
slave_max_allowed_packet 1073741824  
slave_net_timeout 60  
slave_parallel_type DATABASE  
slave_parallel_workers 0  
slave_pending_jobs_size_max 134217728  
slave_preserve_commit_order OFF  
slave_rows_search_algorithms INDEX_SCAN,HASH_SCAN  
slave_skip_errors OFF  
slave_sql_verify_checksum ON  
slave_transaction_retries 10  
slave_type_conversions ""  
slow_launch_time 2  
slow_query_log ON  
slow_query_log_file DEV-DB133-slow.log  
socket MySQL  
sort_buffer_size 262144  
source_verify_checksum OFF  
sql_auto_is_null OFF  
sql_big_selects ON  
sql_buffer_result OFF  
sql_log_off OFF  
sql_mode STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION  
sql_notes ON  
sql_quote_show_create ON  
sql_replica_skip_counter 0  
sql_require_primary_key OFF  
sql_safe_updates OFF  
sql_select_limit 18446744073709551615  
sql_slave_skip_counter 0  
sql_warnings OFF  
ssl_ca ca.pem  
ssl_capath ""  
ssl_cert server-cert.pem  
ssl_cipher ""  
ssl_crl ""  
ssl_crlpath ""  
ssl_fips_mode OFF  
ssl_key server-key.pem  
stored_program_cache 256  
stored_program_definition_cache 256  
super_read_only OFF  
sync_binlog 1  
sync_master_info 10000  
sync_relay_log 10000  
sync_relay_log_info 10000  
sync_source_info 10000  
system_time_zone ""  
table_definition_cache 1400  
table_encryption_privilege_check OFF  
table_open_cache 2000  
table_open_cache_instances 16  
tablespace_definition_cache 256  
temptable_max_mmap 1073741824  
temptable_max_ram 1073741824  
temptable_use_mmap ON  
terminology_use_previous NONE  
thread_cache_size 10  
thread_handling one-thread-per-connection  
thread_stack 286720  
time_zone SYSTEM  
tls_ciphersuites ""  
tls_version TLSv1,TLSv1.1,TLSv1.2,TLSv1.3  
tmp_table_size 30408704  
tmpdir C:\Windows\SERVIC~1\NETWOR~1\AppData\Local\Temp  
transaction_alloc_block_size 8192  
transaction_isolation REPEATABLE-READ  
transaction_prealloc_size 4096  
transaction_read_only OFF  
transaction_write_set_extraction XXHASH64  
unique_checks ON  
updatable_views_with_limit YES  
version 8.0.26  
version_comment MySQL Community Server - GPL  
version_compile_machine x86_64  
version_compile_os Win64  
version_compile_zlib 1.2.11  
wait_timeout 28800 ✔️ 접속한 후 쿼리가 들어올 때까지 대기하는 시간.
✔️ 연결 후 지정된 사간동안 쿼리가 수신되지 않으면 해당 연결을 강제로 종료함
✔️ 접속이 많은 데이터베이스 시스템 에서는 이 값을 낮춰 Sleep 상태의 클라이언트들을 접속 해제하여 성능 향상을 볼 수 있다.
✔️ wait_timeout 에 걸려 접속이 해제되면 aborted_client 수가 상승하게 됨
✔️ node.js 처럼 Connection Pool을 사용하는 시스템은 해당 값을 늘리는게 연결이 몰릴때 이점이 있음
✔️ 단위: 초, default=8시간
windowing_use_high_precision ON  

 

Dashboard에 여러개의 그래프를 표시하는 경우

A그래프의 마우스 위치에 표시되는 지시선이 B, C, D 그래프에도 동일한 위치에 표시되어야

그래프를 통한 분석이 편리합니다. 

기본 설정은 마우스가 위치한 대상 그래프에만 지시선이 표시되기 때문에 설정을 수정해 주셔야 합니다.


기본 설정 상태입니다.




 

  • flush status;   -- 상태정보 초기화 쿼리
Variable Name Value(Example) Description
Aborted_clients 0  클라이언트 프로그램이 비 정상적으로 종료된 수
max_allowed_packet을 초과하는 쿼리는 비정상 적으로 중단된다. (default 4194304 byte)
MySQL 연결을 닫지 않은 상태에서 Wait_timeout 설정에 의해 클라이언트와의 연결을 강제 종료한 경우 증가
≫ 
Aborted_connects 0 MySQL 서버에 접속이 실패된 수
≫ 값이 지속적으로 증가하면 해킹 시도를 의심해야 함
≫ 실패 사유 : 계정정보 오류, 유효하지 않은 DB명 입력, 컨넥션 부족
≫ 서버 재시작 시 초기화됨

Acl_cache_items_count 0  
Binlog_cache_disk_use 0  
Binlog_cache_use 0  
Binlog_stmt_cache_disk_use 0  
Binlog_stmt_cache_use 0  
Bytes_received 65418  
Bytes_sent 1177448  
Caching_sha2_password_rsa_public_key "-----BEGIN PUBLIC KEY----- -----END PUBLIC KEY-----"  
Com_admin_commands 11 Com:서버가 실행된 후 각 명령어가 실행된 횟수
show status 명령어 실행시 마다 3~4씩 증가
Com_assign_to_keycache 0  
Com_alter_db 0 alter db명령어가 실행된 횟수
Com_alter_event 0  
Com_alter_function 0  
Com_alter_instance 0  
Com_alter_procedure 0  
Com_alter_resource_group 0  
Com_alter_server 0  
Com_alter_table 0  
Com_alter_tablespace 0  
Com_alter_user 0  
Com_alter_user_default_role 0  
Com_analyze 0  
Com_begin 0  
Com_binlog 0  
Com_call_procedure 0  
Com_change_db 2  
Com_change_master 0  
Com_change_repl_filter 0  
Com_change_replication_source 0  
Com_check 0  
Com_checksum 0  
Com_clone 0  
Com_commit 0  
Com_create_db 1  create database 실행 횟수
 서버 재시작 시 초기화됨
Com_create_event 0 ≫ create event 실행 횟수
Com_create_function 0  
Com_create_index 0  
Com_create_procedure 0  
Com_create_role 0  
Com_create_server 0  
Com_create_table 34  create table 실행 횟수
 서버 재시작 시 초기화됨
Com_create_resource_group 0  
Com_create_trigger 0  
Com_create_udf 0  
Com_create_user 0  
Com_create_view 0  
Com_create_spatial_reference_system 0  
Com_dealloc_sql 0  
Com_delete 0  
Com_delete_multi 0  
Com_do 0  
Com_drop_db 0  
Com_drop_event 0  
Com_drop_function 0  
Com_drop_index 0  
Com_drop_procedure 0  
Com_drop_resource_group 0  
Com_drop_role 0  
Com_drop_server 0  
Com_drop_spatial_reference_system 0  
Com_drop_table 0  
Com_drop_trigger 0  
Com_drop_user 0  
Com_drop_view 0  
Com_empty_query 0  
Com_execute_sql 0  
Com_explain_other 0  
Com_flush 1  flush status; 등의 명령을 수행한 횟수
Com_get_diagnostics 0  
Com_grant 0  
Com_grant_roles 0  
Com_ha_close 0  
Com_ha_open 0  
Com_ha_read 0  
Com_help 0  
Com_import 0  
Com_insert 0  
Com_insert_select 0  
Com_install_component 0  
Com_install_plugin 0  
Com_kill 0  
Com_load 0  
Com_lock_instance 0  
Com_lock_tables 0  
Com_optimize 0  
Com_preload_keys 0  
Com_prepare_sql 0  
Com_purge 0  
Com_purge_before_date 0  
Com_release_savepoint 0  
Com_rename_table 0  
Com_rename_user 0  
Com_repair 0  
Com_replace 0  
Com_replace_select 0  
Com_reset 0  
Com_resignal 0  
Com_restart 0  
Com_revoke 0  
Com_revoke_all 0  
Com_revoke_roles 0  
Com_rollback 0  
Com_rollback_to_savepoint 0  
Com_savepoint 0  
Com_select 89  
Com_set_option 385  
Com_set_password 0  
Com_set_resource_group 0  
Com_set_role 0  
Com_signal 0  
Com_show_binlog_events 0  
Com_show_binlogs 0  
Com_show_charsets 0  
Com_show_collations 0  
Com_show_create_db 0  
Com_show_create_event 0  
Com_show_create_func 22  
Com_show_create_proc 26  
Com_show_create_table 79  
Com_show_create_trigger 2  
Com_show_databases 0  
Com_show_engine_logs 0  
Com_show_engine_mutex 0  
Com_show_engine_status 0  
Com_show_events 0  
Com_show_errors 0  
Com_show_fields 0  
Com_show_function_code 0  
Com_show_function_status 0  
Com_show_grants 0  
Com_show_keys 0  
Com_show_master_status 0  
Com_show_open_tables 0  
Com_show_plugins 0  
Com_show_privileges 0  
Com_show_procedure_code 0  
Com_show_procedure_status 0  
Com_show_processlist 0  
Com_show_profile 0  
Com_show_profiles 0  
Com_show_relaylog_events 0  
Com_show_replicas 0  
Com_show_slave_hosts 0  
Com_show_replica_status 0  
Com_show_slave_status 0  
Com_show_status 2  
Com_show_storage_engines 0  
Com_show_table_status 0  
Com_show_tables 0  
Com_show_triggers 0  
Com_show_variables 2  
Com_show_warnings 413  
Com_show_create_user 0  
Com_shutdown 0  
Com_replica_start 0  
Com_slave_start 0  
Com_replica_stop 0  
Com_slave_stop 0  
Com_group_replication_start 0  
Com_group_replication_stop 0  
Com_stmt_execute 0  
Com_stmt_close 0  
Com_stmt_fetch 0  
Com_stmt_prepare 0  
Com_stmt_reset 0  
Com_stmt_send_long_data 0  
Com_truncate 0  
Com_uninstall_component 0  
Com_uninstall_plugin 0  
Com_unlock_instance 0  
Com_unlock_tables 0  
Com_update 0  
Com_update_multi 0  
Com_xa_commit 0  
Com_xa_end 0  
Com_xa_prepare 0  
Com_xa_recover 0  
Com_xa_rollback 0  
Com_xa_start 0  
Com_stmt_reprepare 0  
Connection_errors_accept 0 수신 포트에서 수락 호출 중에 발생한 오류 수입니다.
 서버 재시작 시 초기화됨
Connection_errors_internal 0 새 스레드를 시작하지 못했거나 메모리 부족 상태와 같은 서버 내부 오류로 인해 거부된 연결 수입니다.
 서버 재시작 시 초기화됨
Connection_errors_max_connections 0 서버 max_connections 제한에 도달했기 때문에 거부된 연결 수입니다.
 서버 재시작 시 초기화됨
Connection_errors_peer_address 0  클라이언트 IP 주소를 연결하는 동안 발생한 오류 수입니다.
 서버 재시작 시 초기화됨
Connection_errors_select 0 수신 포트에서 select() 또는 pool()를 호출하는 동안 발생한 오류 수입니다.
이 작업이 실패했다고 해서 클라이언트 연결이 반드시 거부된 것은 아닙니다.
Connection_errors_tcpwrap 0  libwrap 라이브러리에서 거부된 연결 수입니다.
Connections 9 서버 가동 후 연결 시도된 횟수
실제 접속이 되지 않고 시도만 해도 값 증가
Access denied 이 되어도 수치 증가
Created_tmp_disk_tables 4 ≫ 임시테이블을 디스크에 생성한 횟수
이 수치가 높으면 쿼리 처리를 위해 디스크를 많이 사용하고 있다는 뜻(성능 하락)
Created_tmp_files 4 ≫ 임시파일 생성 횟수
Created_tmp_tables 81 ≫ 임시 테이블 생성 횟수
Current_tls_ca ca.pem  
Current_tls_capath ""  
Current_tls_cert server-cert.pem  
Current_tls_cipher ""  
Current_tls_ciphersuites ""  
Current_tls_crl ""  
Current_tls_crlpath ""  
Current_tls_key server-key.pem  
Current_tls_version TLSv1,TLSv1.1,TLSv1.2,TLSv1.3  
Delayed_errors 0  
Delayed_insert_threads 0  사용중인 insert handler threads가 지연되고 있는 수
Delayed_writes 0  INSERT DELAYED로 쓰여진 rows수
Error_log_buffered_bytes 147912 ≫ performance_schema.error_log 의 Byte수
 MySQL 8.0.22에서 추가
Error_log_buffered_events 1032  performance_schema.error_log 의 Row 수
Error_log_expired_events 0  
Error_log_latest_write 1675386451298063  performance_schema.error_log 테이블에 마지막으로 기록한 시간
Flush_commands 3  
Handler_commit 2369  
Handler_delete 0  
Handler_discover 0  
Handler_external_lock 15409  
Handler_mrr_init 0  
Handler_prepare 0  
Handler_read_first 114  
Handler_read_key 11478  
Handler_read_last 0  
Handler_read_next 17529  
Handler_read_prev 0  
Handler_read_rnd 3991  
Handler_read_rnd_next 9840  
Handler_rollback 0  
Handler_savepoint 0  
Handler_savepoint_rollback 0  
Handler_update 318  
Handler_write 6208  
Innodb_buffer_pool_dump_status Dumping of buffer pool not started  
Innodb_buffer_pool_load_status Buffer pool(s) load completed at 230203 10:07:31  
Innodb_buffer_pool_resize_status ""  
Innodb_buffer_pool_pages_data 2267  
Innodb_buffer_pool_bytes_data 37142528  
Innodb_buffer_pool_pages_dirty 0  
Innodb_buffer_pool_bytes_dirty 0  
Innodb_buffer_pool_pages_flushed 217  
Innodb_buffer_pool_pages_free 259829  
Innodb_buffer_pool_pages_misc 48  
Innodb_buffer_pool_pages_total 262144  
Innodb_buffer_pool_read_ahead_rnd 0  
Innodb_buffer_pool_read_ahead 0  
Innodb_buffer_pool_read_ahead_evicted 0  
Innodb_buffer_pool_read_requests 63821  
Innodb_buffer_pool_reads 2123  
Innodb_buffer_pool_wait_free 0  
Innodb_buffer_pool_write_requests 1958  
Innodb_data_fsyncs 125  
Innodb_data_pending_fsyncs 0  
Innodb_data_pending_reads 0  
Innodb_data_pending_writes 0  
Innodb_data_read 34853888  
Innodb_data_reads 2149  
Innodb_data_writes 372  
Innodb_data_written 3638272  
Innodb_dblwr_pages_written 72  
Innodb_dblwr_writes 29  
Innodb_log_waits 0  
Innodb_log_write_requests 812  
Innodb_log_writes 77  
Innodb_os_log_fsyncs 59  
Innodb_os_log_pending_fsyncs 0  
Innodb_os_log_pending_writes 0  
Innodb_os_log_written 64000  
Innodb_page_size 16384  
Innodb_pages_created 146  
Innodb_pages_read 2122  
Innodb_pages_written 217  
Innodb_redo_log_enabled ON  
Innodb_row_lock_current_waits 0  
Innodb_row_lock_time 0  
Innodb_row_lock_time_avg 0  
Innodb_row_lock_time_max 0  
Innodb_row_lock_waits 0  
Innodb_rows_deleted 0  
Innodb_rows_inserted 0  
Innodb_rows_read 0  
Innodb_rows_updated 0  
Innodb_system_rows_deleted 0  
Innodb_system_rows_inserted 38  
Innodb_system_rows_read 22621  
Innodb_system_rows_updated 318  
Innodb_sampled_pages_read 0  
Innodb_sampled_pages_skipped 0  
Innodb_num_open_files 19  
Innodb_truncated_status_writes 0  
Innodb_undo_tablespaces_total 2  
Innodb_undo_tablespaces_implicit 2  
Innodb_undo_tablespaces_explicit 0  
Innodb_undo_tablespaces_active 2  
Key_blocks_not_flushed 0  
Key_blocks_unused 6698  
Key_blocks_used 0  
Key_read_requests 0  
Key_reads 0  
Key_write_requests 0  
Key_writes 0  
Locked_connects 0  
Max_execution_time_exceeded 0  
Max_execution_time_set 0  
Max_execution_time_set_failed 0  
Max_used_connections 1 최대로 동시에 접속한 수
Max_used_connections_time 2023-02-03 13:58:30 최대로 동시에 접속한 시각
Mysqlx_aborted_clients 0  
Mysqlx_address ::  
Mysqlx_bytes_received 0  
Mysqlx_bytes_received_compressed_payload 0  
Mysqlx_bytes_received_uncompressed_frame 0  
Mysqlx_bytes_sent 0  
Mysqlx_bytes_sent_compressed_payload 0  
Mysqlx_bytes_sent_uncompressed_frame 0  
Mysqlx_compression_algorithm ""  
Mysqlx_compression_level ""  
Mysqlx_connection_accept_errors 0  
Mysqlx_connection_errors 0  
Mysqlx_connections_accepted 0  
Mysqlx_connections_closed 0  
Mysqlx_connections_rejected 0  
Mysqlx_crud_create_view 0  
Mysqlx_crud_delete 0  
Mysqlx_crud_drop_view 0  
Mysqlx_crud_find 0  
Mysqlx_crud_insert 0  
Mysqlx_crud_modify_view 0  
Mysqlx_crud_update 0  
Mysqlx_cursor_close 0  
Mysqlx_cursor_fetch 0  
Mysqlx_cursor_open 0  
Mysqlx_errors_sent 0  
Mysqlx_errors_unknown_message_type 0  
Mysqlx_expect_close 0  
Mysqlx_expect_open 0  
Mysqlx_init_error 0  
Mysqlx_messages_sent 0  
Mysqlx_notice_global_sent 0  
Mysqlx_notice_other_sent 0  
Mysqlx_notice_warning_sent 0  
Mysqlx_notified_by_group_replication 0  
Mysqlx_port 33060  
Mysqlx_prep_deallocate 0  
Mysqlx_prep_execute 0  
Mysqlx_prep_prepare 0  
Mysqlx_rows_sent 0  
Mysqlx_sessions 0  
Mysqlx_sessions_accepted 0  
Mysqlx_sessions_closed 0  
Mysqlx_sessions_fatal_error 0  
Mysqlx_sessions_killed 0  
Mysqlx_sessions_rejected 0  
Mysqlx_socket UNDEFINED  
Mysqlx_ssl_accepts 0  
Mysqlx_ssl_active    
Mysqlx_ssl_cipher    
Mysqlx_ssl_cipher_list    
Mysqlx_ssl_ctx_verify_depth 18446744073709551615  
Mysqlx_ssl_ctx_verify_mode 5  
Mysqlx_ssl_finished_accepts 0  
Mysqlx_ssl_server_not_after Sep 25 01:18:46 2031 GMT  
Mysqlx_ssl_server_not_before Sep 27 01:18:46 2021 GMT  
Mysqlx_ssl_verify_depth    
Mysqlx_ssl_verify_mode    
Mysqlx_ssl_version    
Mysqlx_stmt_create_collection 0  
Mysqlx_stmt_create_collection_index 0  
Mysqlx_stmt_disable_notices 0  
Mysqlx_stmt_drop_collection 0  
Mysqlx_stmt_drop_collection_index 0  
Mysqlx_stmt_enable_notices 0  
Mysqlx_stmt_ensure_collection 0  
Mysqlx_stmt_execute_mysqlx 0  
Mysqlx_stmt_execute_sql 0  
Mysqlx_stmt_execute_xplugin 0  
Mysqlx_stmt_get_collection_options 0  
Mysqlx_stmt_kill_client 0  
Mysqlx_stmt_list_clients 0  
Mysqlx_stmt_list_notices 0  
Mysqlx_stmt_list_objects 0  
Mysqlx_stmt_modify_collection_options 0  
Mysqlx_stmt_ping 0  
Mysqlx_worker_threads 2  
Mysqlx_worker_threads_active 0  
Not_flushed_delayed_rows 0  
Ongoing_anonymous_transaction_count 0  
Open_files 3  
Open_streams 0  
Open_table_definitions 209  
Open_tables 164  
Opened_files 3  
Opened_table_definitions 246  
Opened_tables 299  
Performance_schema_accounts_lost 0  
Performance_schema_cond_classes_lost 0  
Performance_schema_cond_instances_lost 0  
Performance_schema_digest_lost 0  
Performance_schema_file_classes_lost 0  
Performance_schema_file_handles_lost 0  
Performance_schema_file_instances_lost 0  
Performance_schema_hosts_lost 0  
Performance_schema_index_stat_lost 0  
Performance_schema_locker_lost 0  
Performance_schema_memory_classes_lost 0  
Performance_schema_metadata_lock_lost 0  
Performance_schema_mutex_classes_lost 0  
Performance_schema_mutex_instances_lost 0  
Performance_schema_nested_statement_lost 0  
Performance_schema_prepared_statements_lost 0  
Performance_schema_program_lost 0  
Performance_schema_rwlock_classes_lost 0  
Performance_schema_rwlock_instances_lost 0  
Performance_schema_session_connect_attrs_longest_seen 131  
Performance_schema_session_connect_attrs_lost 0  
Performance_schema_socket_classes_lost 0  
Performance_schema_socket_instances_lost 0  
Performance_schema_stage_classes_lost 0  
Performance_schema_statement_classes_lost 0  
Performance_schema_table_handles_lost 0  
Performance_schema_table_instances_lost 0  
Performance_schema_table_lock_stat_lost 0  
Performance_schema_thread_classes_lost 0  
Performance_schema_thread_instances_lost 0  
Performance_schema_users_lost 0  
Prepared_stmt_count 0  
Queries 1030  
Questions 1018  
Replica_open_temp_tables 0  
Rsa_public_key "-----BEGIN PUBLIC KEY----- -----END PUBLIC KEY-----"  
Secondary_engine_execution_count 0  
Select_full_join 18  
Select_full_range_join 0  
Select_range 0  
Select_range_check 0  
Select_scan 84  
Slave_open_temp_tables 0  
Slow_launch_threads 0  
Slow_queries 0  
Sort_merge_passes 0  
Sort_range 0  
Sort_rows 4003  
Sort_scan 24  
Ssl_accept_renegotiates 0  
Ssl_accepts 2  
Ssl_callback_cache_hits 0  
Ssl_cipher TLS_AES_256_GCM_SHA384  
Ssl_cipher_list TLS_AES_256_GCM_SHA384  
Ssl_client_connects 0  
Ssl_connect_renegotiates 0  
Ssl_ctx_verify_depth 4294967295  
Ssl_ctx_verify_mode 5  
Ssl_default_timeout 7200  
Ssl_finished_accepts 2  
Ssl_finished_connects 0  
Ssl_server_not_after Sep 25 01:18:46 2031 GMT  
Ssl_server_not_before Sep 27 01:18:46 2021 GMT  
Ssl_session_cache_hits 0  
Ssl_session_cache_misses 0  
Ssl_session_cache_mode SERVER  
Ssl_session_cache_overflows 0  
Ssl_session_cache_size 128  
Ssl_session_cache_timeouts 0  
Ssl_sessions_reused 0  
Ssl_used_session_cache_entries 0  
Ssl_verify_depth 4294967295  
Ssl_verify_mode 5  
Ssl_version TLSv1.3  
Table_locks_immediate 4 즉식 획득한 테이블 락 횟수
Table_locks_waited 0 테이블 락을 즉시 획득하지 못하고 대기한 횟수
Table_open_cache_hits 7686  
Table_open_cache_misses 299  
Table_open_cache_overflows 54  
Tc_log_max_pages_used 0  
Tc_log_page_size 0  
Tc_log_page_waits 0  
Threads_cached 0 Thread Cache의 Thread 수
Threads_connected 1 현재 연결된 Thread 수
Threads_created 1 접속을 위해 생성된 Thread 수
Threads_running 2 Sleeping 되어 있지 않은 Thread 수
Uptime 13895 MySQL이 가동중인 시간
Uptime_since_flush_status 13895  

표시하려는 데이터의 구성에 맞는 그래프 선택법 입니다. 

MySQL / Mariadb 간 버전별 information_schema DB의 테이블 정보 비교 표 입니다.

MariaDB 10.1.48 MySQL 8.0.30 MySQL 5.7.37 Description
  ADMINISTRABLE_ROLE_AUTHORIZATIONS    
ALL_PLUGINS     플러그인 설치여부 및 버전 정보
APPLICABLE_ROLES APPLICABLE_ROLES    
CHANGED_PAGE_BITMAPS      
CHARACTER_SETS CHARACTER_SETS CHARACTER_SETS 지원하는 캐릭터셋 목록
  CHECK_CONSTRAINTS    
CLIENT_STATISTICS      
COLLATIONS COLLATIONS COLLATIONS 지원하는 Collations 목록
COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_CHARACTER_SET_APPLICABILITY 캐릭터셋 과 Collation 맵핑
COLUMN_PRIVILEGES COLUMN_PRIVILEGES COLUMN_PRIVILEGES  
  COLUMN_STATISTICS    
COLUMNS COLUMNS COLUMNS DB별 컬럼 목록(정보)
  COLUMNS_EXTENSIONS    
ENABLED_ROLES ENABLED_ROLES    
ENGINES ENGINES ENGINES  
EVENTS EVENTS EVENTS  
FILES FILES FILES  
GEOMETRY_COLUMNS      
GLOBAL_STATUS   GLOBAL_STATUS  
GLOBAL_VARIABLES   GLOBAL_VARIABLES  
INDEX_STATISTICS      
INNODB_BUFFER_PAGE INNODB_BUFFER_PAGE INNODB_BUFFER_PAGE  
INNODB_BUFFER_PAGE_LRU INNODB_BUFFER_PAGE_LRU INNODB_BUFFER_PAGE_LRU  
INNODB_BUFFER_POOL_STATS INNODB_BUFFER_POOL_STATS INNODB_BUFFER_POOL_STATS  
INNODB_CHANGED_PAGES      
  INNODB_CACHED_INDEXES    
INNODB_CMP INNODB_CMP INNODB_CMP  
INNODB_CMPMEM   INNODB_CMPMEM  
INNODB_CMPMEM_RESET   INNODB_CMPMEM_RESET  
INNODB_CMP_PER_INDEX INNODB_CMP_PER_INDEX INNODB_CMP_PER_INDEX  
INNODB_CMP_PER_INDEX_RESET INNODB_CMP_PER_INDEX_RESET INNODB_CMP_PER_INDEX_RESET  
INNODB_CMP_RESET INNODB_CMP_RESET INNODB_CMP_RESET  
  INNODB_CMPMEM    
  INNODB_CMPMEM_RESET    
  INNODB_COLUMNS    
  INNODB_DATAFILES    
  INNODB_FIELDS    
  INNODB_FOREIGN    
  INNODB_FOREIGN_COLS    
INNODB_FT_BEING_DELETED INNODB_FT_BEING_DELETED INNODB_FT_BEING_DELETED  
INNODB_FT_CONFIG INNODB_FT_CONFIG INNODB_FT_CONFIG  
INNODB_FT_DEFAULT_STOPWORD INNODB_FT_DEFAULT_STOPWORD INNODB_FT_DEFAULT_STOPWORD  
INNODB_FT_DELETED INNODB_FT_DELETED INNODB_FT_DELETED  
INNODB_FT_INDEX_CACHE INNODB_FT_INDEX_CACHE INNODB_FT_INDEX_CACHE  
INNODB_FT_INDEX_TABLE INNODB_FT_INDEX_TABLE INNODB_FT_INDEX_TABLE  
  INNODB_INDEXES    
INNODB_LOCKS   INNODB_LOCKS  
INNODB_LOCK_WAITS   INNODB_LOCK_WAITS  
INNODB_METRICS INNODB_METRICS INNODB_METRICS  
  INNODB_SESSION_TEMP_TABLESPACES    
  INNODB_TABLES    
  INNODB_TABLESPACES    
  INNODB_TABLESPACES_BRIEF    
  INNODB_TABLESTATS    
INNODB_MUTEXES      
INNODB_SYS_COLUMNS   INNODB_SYS_COLUMNS  
INNODB_SYS_DATAFILES   INNODB_SYS_DATAFILES  
INNODB_SYS_FIELDS   INNODB_SYS_FIELDS  
INNODB_SYS_FOREIGN   INNODB_SYS_FOREIGN  
INNODB_SYS_FOREIGN_COLS   INNODB_SYS_FOREIGN_COLS  
INNODB_SYS_INDEXES   INNODB_SYS_INDEXES  
INNODB_SYS_SEMAPHORE_WAITS      
INNODB_SYS_TABLES   INNODB_SYS_TABLES  
INNODB_SYS_TABLESPACES   INNODB_SYS_TABLESPACES  
INNODB_SYS_TABLESTATS   INNODB_SYS_TABLESTATS  
INNODB_TABLESPACES_ENCRYPTION      
INNODB_TABLESPACES_SCRUBBING      
    INNODB_SYS_VIRTUAL  
  INNODB_TEMP_TABLE_INFO INNODB_TEMP_TABLE_INFO  
INNODB_TRX INNODB_TRX INNODB_TRX  
KEY_CACHES      
  INNODB_VIRTUAL    
KEY_COLUMN_USAGE KEY_COLUMN_USAGE KEY_COLUMN_USAGE  
  KEYWORDS    
  OPTIMIZER_TRACE OPTIMIZER_TRACE  
PARAMETERS PARAMETERS PARAMETERS  
PARTITIONS PARTITIONS PARTITIONS  
PLUGINS PLUGINS PLUGINS  
PROCESSLIST PROCESSLIST PROCESSLIST  
PROFILING PROFILING PROFILING  
REFERENTIAL_CONSTRAINTS REFERENTIAL_CONSTRAINTS REFERENTIAL_CONSTRAINTS  
  RESOURCE_GROUPS    
  ROLE_COLUMN_GRANTS    
  ROLE_ROUTINE_GRANTS    
  ROLE_TABLE_GRANTS    
ROUTINES ROUTINES ROUTINES  
SCHEMATA SCHEMATA SCHEMATA  
SCHEMA_PRIVILEGES SCHEMA_PRIVILEGES SCHEMA_PRIVILEGES  
SESSION_STATUS   SESSION_STATUS  
SESSION_VARIABLES   SESSION_VARIABLES  
SPATIAL_REF_SYS      
  SCHEMATA_EXTENSIONS    
  ST_GEOMETRY_COLUMNS    
  ST_SPATIAL_REFERENCE_SYSTEMS    
  ST_UNITS_OF_MEASURE    
STATISTICS STATISTICS STATISTICS  
SYSTEM_VARIABLES      
TABLES TABLES TABLES  
  TABLES_EXTENSIONS    
TABLESPACES TABLESPACES TABLESPACES  
TABLE_CONSTRAINTS TABLE_CONSTRAINTS TABLE_CONSTRAINTS  
  TABLE_CONSTRAINTS_EXTENSIONS    
TABLE_PRIVILEGES TABLE_PRIVILEGES TABLE_PRIVILEGES  
  TABLESPACES_EXTENSIONS    
TABLE_STATISTICS      
TRIGGERS TRIGGERS TRIGGERS  
  USER_ATTRIBUTES    
USER_PRIVILEGES USER_PRIVILEGES USER_PRIVILEGES  
USER_STATISTICS      
  VIEW_ROUTINE_USAGE    
  VIEW_TABLE_USAGE    
VIEWS VIEWS VIEWS  
XTRADB_INTERNAL_HASH_TABLES      
XTRADB_READ_VIEW      
XTRADB_RSEG      

MySQL에서 performance_schema 를 활성화 한 이후 설정 가능한 환경변수 목록 입니다.

변경할 필요가 많지 않습니다.

Variable_name Value Variable_name Value Variable_name Value Description
performance_schema ON performance_schema ON performance_schema ON 성능 모니터링 사용 여부
performance_schema_accounts_size 100 performance_schema_accounts_size -1 performance_schema_accounts_size -1 performance_schema.accounts 테이블 의 최대 행 수
performance_schema_digests_size 5000 performance_schema_digests_size 10000 performance_schema_digests_size 10000 events_statements_summary_by_digest 테이블에 저장할 수 있는 최대 행 수입니다
    performance_schema_error_size 5153      
performance_schema_events_stages_history_long_size 1000 performance_schema_events_stages_history_long_size 10000 performance_schema_events_stages_history_long_size 10000 events_stages_history_long 테이블 의 행 수입니다 .
performance_schema_events_stages_history_size 10 performance_schema_events_stages_history_size 10 performance_schema_events_stages_history_size 10 events_stages_history 테이블의 스레드당 행 수입니다 .
performance_schema_events_statements_history_long_size 1000 performance_schema_events_statements_history_long_size 10000 performance_schema_events_statements_history_long_size 10000 events_statements_history_long 테이블 의 행 수입니다 .
performance_schema_events_statements_history_size 10 performance_schema_events_statements_history_size 10 performance_schema_events_statements_history_size 10 events_statements_history 테이블의 스레드당 행 수입니다 .
    performance_schema_events_transactions_history_long_size 10000 performance_schema_events_transactions_history_long_size 10000 events_transactions_history_long 테이블 의 행 수입니다
    performance_schema_events_transactions_history_size 10 performance_schema_events_transactions_history_size 10 events_transactions_history 의 스레드당 행 수입니다 .
performance_schema_events_waits_history_long_size 1000 performance_schema_events_waits_history_long_size 10000 performance_schema_events_waits_history_long_size 10000 events_waits_history_long 테이블에 포함된 행 수입니다 .
performance_schema_events_waits_history_size 10 performance_schema_events_waits_history_size 10 performance_schema_events_waits_history_size 10 events_waits_history 테이블에 포함된 스레드당 행 수입니다 .
performance_schema_hosts_size 100 performance_schema_hosts_size -1 performance_schema_hosts_size -1 호스트 테이블에 저장된 행 수입니다 . 0으로 설정하면 호스트 테이블에 대한 연결 통계가 유지되지 않습니다.
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 150 performance_schema_max_cond_classes 80 최대 조건 계측기 수를 지정합니다.
performance_schema_max_cond_instances 1360 performance_schema_max_cond_instances -1 performance_schema_max_cond_instances -1 계측된 조건 개체의 최대 수를 지정합니다.
performance_schema_max_digest_length 1024 performance_schema_max_digest_length 1024 performance_schema_max_digest_length 1024 performance_schema 테이블에 저장 될 때 요약 텍스트에 고려되는 최대 길이입니다.
    performance_schema_max_digest_sample_age 60      
performance_schema_max_file_classes 50 performance_schema_max_file_classes 80 performance_schema_max_file_classes 80 최대 파일 악기 수를 지정합니다.
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768 열린 최대 파일 개체 수를 지정합니다. 항상 open_files_limit 보다 높아야 합니다.
performance_schema_max_file_instances 2500 performance_schema_max_file_instances -1 performance_schema_max_file_instances -1 계측된 파일 개체의 최대 수를 지정합니다.
    performance_schema_max_index_stat -1 performance_schema_max_index_stat -1 계측된 테이블에 대한 최대 인덱스 통계 수입니다.
    performance_schema_max_memory_classes 450 performance_schema_max_memory_classes 320 메모리 풀 기기의 최대 수입니다.
    performance_schema_max_metadata_locks -1 performance_schema_max_metadata_locks -1 성능 스키마 메타데이터 잠금 의 최대 수입니다.
performance_schema_max_mutex_classes 200 performance_schema_max_mutex_classes 350 performance_schema_max_mutex_classes 210 최대 뮤텍스 기기 수를 지정합니다.
performance_schema_max_mutex_instances 5648 performance_schema_max_mutex_instances -1 performance_schema_max_mutex_instances -1 계측된 뮤텍스 인스턴스의 최대 수를 지정합니다.
    performance_schema_max_prepared_statements_instances -1 performance_schema_max_prepared_statements_instances -1 계측된 준비 명령문의 최대 수입니다.
    performance_schema_max_program_instances -1 performance_schema_max_program_instances -1 계측된 프로그램의 최대 수입니다.
performance_schema_max_rwlock_classes 40 performance_schema_max_rwlock_classes 60 performance_schema_max_rwlock_classes 50 최대 rwlock 기기 수를 지정합니다.
performance_schema_max_rwlock_instances 3073 performance_schema_max_rwlock_instances -1 performance_schema_max_rwlock_instances -1 계측된 rwlock 개체의 최대 수를 지정합니다.
performance_schema_max_socket_classes 10 performance_schema_max_socket_classes 10 performance_schema_max_socket_classes 10 최대 소켓 계측기 수를 지정합니다.
performance_schema_max_socket_instances 230 performance_schema_max_socket_instances -1 performance_schema_max_socket_instances -1 계측된 소켓 개체의 최대 수를 지정합니다.
    performance_schema_max_sql_text_length 1024 performance_schema_max_sql_text_length 1024 표시되는 SQL 텍스트의 최대 길이입니다.
performance_schema_max_stage_classes 150 performance_schema_max_stage_classes 175 performance_schema_max_stage_classes 150 최대 스테이지 악기 수를 지정합니다.
performance_schema_max_statement_classes 178 performance_schema_max_statement_classes 219 performance_schema_max_statement_classes 193 최대 명령문 도구 수를 지정합니다. 사용 가능한 명령문 수에 따라 서버 빌드시 자동으로 계산됩니다. 양수 값으로 변경해도 아무런 이점이 없으며 불필요한 메모리가 할당 될 가능성이 높으므로 자동 크기 조정 또는 비활성화 상태로 두어야합니다. 0으로 설정하면 모든 명령문 인스 트루먼 테이션이 사용 불가능하며이 목적으로 메모리가 할당되지 않습니다.
    performance_schema_max_statement_stack 10 performance_schema_max_statement_stack 10 EVENTS_STATEMENTS_CURRENT의 스레드당 행 수입니다.
performance_schema_max_table_handles 2858 performance_schema_max_table_handles -1 performance_schema_max_table_handles -1 열린 테이블 개체의 최대 수를 지정합니다.
performance_schema_max_table_instances 667 performance_schema_max_table_instances -1 performance_schema_max_table_instances -1 계측된 테이블 개체의 최대 수를 지정합니다.
    performance_schema_max_table_lock_stat -1 performance_schema_max_table_lock_stat -1 계측된 테이블에 대한 최대 잠금 통계 수입니다.
performance_schema_max_thread_classes 50 performance_schema_max_thread_classes 100 performance_schema_max_thread_classes 50 최대 스레드 악기 수를 지정합니다.
performance_schema_max_thread_instances 288 performance_schema_max_thread_instances -1 performance_schema_max_thread_instances -1 실행 중인 서버 스레드( max_connections 및 max_delayed_threads 참조 )를 계측할 수 있는 수를 지정합니다. max_connections 및 max_delayed_threads의 합보다 커야 합니다.
performance_schema_session_connect_attrs_size 512 performance_schema_session_connect_attrs_size 512 performance_schema_session_connect_attrs_size 512 연결 속성 문자열을 보유하기 위해 스레드별로 사전 할당된 메모리입니다. 문자열이 예약된 공간보다 큰 경우 증가합니다.
performance_schema_setup_actors_size 100 performance_schema_setup_actors_size -1 performance_schema_setup_actors_size -1 성능 스키마 setup_actors 테이블 에 저장할 최대 행 수입니다 .
performance_schema_setup_objects_size 100 performance_schema_setup_objects_size -1 performance_schema_setup_objects_size -1 성능 스키마 setup_objects 테이블에 저장할 수 있는 최대 행 수입니다.
    performance_schema_show_processlist OFF      
performance_schema_users_size 100 performance_schema_users_size -1 performance_schema_users_size -1 performance_schema.users 테이블 의 행 수입니다 . 0으로 설정하면 성능 스키마 가 사용자 테이블에 연결 통계를 저장하지 않습니다.

MySQL 종류 버전별 performance_schema 의 테이블 목록 비교 및 설명 입니다.

중요하다고 생각되는 것들은 붉은글자로 강조표시 하였습니다.

MariaDB 10.1.48 MySQL 8.0.30 MySQL 5.7.37 Description
accounts accounts accounts 클라이언트 계정별 연결 통계
  binary_log_transaction_compression_stats   바이너리 로그 트랜잭션 압축
cond_instances cond_instances cond_instances 동기화 개체 인스턴스
  data_lock_waits   데이터 잠금 대기 관계
  data_locks   보유 및 요청된 데이터 잠금
  error_log   서버 오류 로그 최근 항목
  events_errors_summary_by_account_by_error   계정당 오류 및 오류 코드
  events_errors_summary_by_host_by_error   호스트당 오류 및 오류 코드
  events_errors_summary_by_thread_by_error   스레드당 오류 및 오류 코드
  events_errors_summary_by_user_by_error   사용자당 오류 및 오류 코드
  events_errors_summary_global_by_error   오류 코드당 오류
events_stages_current events_stages_current events_stages_current 현재 스테이지 이벤트
events_stages_history events_stages_history events_stages_history 스레드당 가장 최근의 스테이지 이벤트
events_stages_history_long events_stages_history_long events_stages_history_long 가장 최근의 스테이지 이벤트 전체
events_stages_summary_by_account_by_event_name events_stages_summary_by_account_by_event_name events_stages_summary_by_account_by_event_name 계정별 스테이지 이벤트 및 이벤트명
events_stages_summary_by_host_by_event_name events_stages_summary_by_host_by_event_name events_stages_summary_by_host_by_event_name 호스트 이름 및 이벤트 이름별 스테이지 이벤트
events_stages_summary_by_thread_by_event_name events_stages_summary_by_thread_by_event_name events_stages_summary_by_thread_by_event_name 스레드 및 이벤트 이름당 스테이지 대기
events_stages_summary_by_user_by_event_name events_stages_summary_by_user_by_event_name events_stages_summary_by_user_by_event_name 사용자 이름 및 이벤트 이름별 스테이지 이벤트
events_stages_summary_global_by_event_name events_stages_summary_global_by_event_name events_stages_summary_global_by_event_name 이벤트 이름당 단계 대기
events_statements_current events_statements_current events_statements_current 현재 이벤트
  events_statements_histogram_by_digest   스키마 및 다이제스트 값별 명령문 히스토그램
  events_statements_histogram_global   전역적으로 요약된 명령문 히스토그램
events_statements_history events_statements_history events_statements_history 스레드당 가장 최근의 명령문 이벤트
events_statements_history_long events_statements_history_long events_statements_history_long 가장 최근의 명세서 이벤트 전체
events_statements_summary_by_account_by_event_name events_statements_summary_by_account_by_event_name events_statements_summary_by_account_by_event_name 계정별 명세서 이벤트 및 이벤트명
events_statements_summary_by_digest events_statements_summary_by_digest events_statements_summary_by_digest 스키마별 명령문 이벤트 및 다이제스트 값
events_statements_summary_by_host_by_event_name events_statements_summary_by_host_by_event_name events_statements_summary_by_host_by_event_name 호스트 이름 및 이벤트 이름별 명령문 이벤트
  events_statements_summary_by_program events_statements_summary_by_program 저장 프로그램(함수/SP)당 명령문 이벤트
events_statements_summary_by_thread_by_event_name events_statements_summary_by_thread_by_event_name events_statements_summary_by_thread_by_event_name 스레드별 명령문 이벤트 및 이벤트 이름
events_statements_summary_by_user_by_event_name events_statements_summary_by_user_by_event_name events_statements_summary_by_user_by_event_name 사용자 이름 및 이벤트 이름별 명령문 이벤트
events_statements_summary_global_by_event_name events_statements_summary_global_by_event_name events_statements_summary_global_by_event_name 이벤트 이름당 명령문 이벤트
  events_transactions_current events_transactions_current 현재 거래 이벤트
  events_transactions_history events_transactions_history 스레드당 가장 최근의 트랜잭션 이벤트
  events_transactions_history_long events_transactions_history_long 가장 최근의 거래 이벤트 전체
  events_transactions_summary_by_account_by_event_name events_transactions_summary_by_account_by_event_name 계정별 거래 이벤트 및 이벤트 이름
  events_transactions_summary_by_host_by_event_name events_transactions_summary_by_host_by_event_name 호스트 이름 및 이벤트 이름별 트랜잭션 이벤트
  events_transactions_summary_by_thread_by_event_name events_transactions_summary_by_thread_by_event_name 스레드별 트랜잭션 이벤트 및 이벤트 이름
  events_transactions_summary_by_user_by_event_name events_transactions_summary_by_user_by_event_name 사용자 이름 및 이벤트 이름별 트랜잭션 이벤트
  events_transactions_summary_global_by_event_name events_transactions_summary_global_by_event_name 이벤트 이름별 트랜잭션 이벤트
events_waits_current events_waits_current events_waits_current 현재 대기 이벤트
events_waits_history events_waits_history events_waits_history 스레드당 가장 최근의 대기 이벤트
events_waits_history_long events_waits_history_long events_waits_history_long 가장 최근의 대기 이벤트 전체
events_waits_summary_by_account_by_event_name events_waits_summary_by_account_by_event_name events_waits_summary_by_account_by_event_name 계정 및 이벤트 이름별 대기 이벤트
events_waits_summary_by_host_by_event_name events_waits_summary_by_host_by_event_name events_waits_summary_by_host_by_event_name 호스트 이름 및 이벤트 이름별 대기 이벤트
events_waits_summary_by_instance events_waits_summary_by_instance events_waits_summary_by_instance 인스턴스당 대기 이벤트
events_waits_summary_by_thread_by_event_name events_waits_summary_by_thread_by_event_name events_waits_summary_by_thread_by_event_name 스레드 및 이벤트 이름별 대기 이벤트
events_waits_summary_by_user_by_event_name events_waits_summary_by_user_by_event_name events_waits_summary_by_user_by_event_name 사용자 이름 및 이벤트 이름별 대기 이벤트
events_waits_summary_global_by_event_name events_waits_summary_global_by_event_name events_waits_summary_global_by_event_name 이벤트 이름별 대기 이벤트
file_instances file_instances file_instances 파일 인스턴스
file_summary_by_event_name file_summary_by_event_name file_summary_by_event_name 이벤트 이름당 파일 이벤트
file_summary_by_instance file_summary_by_instance file_summary_by_instance 파일 인스턴스당 파일 이벤트
  global_status global_status 전역 상태 변수
  global_variables global_variables 전역 시스템 변수
host_cache host_cache host_cache 내부 호스트 캐시의 정보
hosts hosts hosts 클라이언트 호스트 이름당 연결 통계
  innodb_redo_log_files    
  keyring_component_status   설치된 키링 구성 요소에 대한 상태 정보
  keyring_keys   키링 키에 대한 메타데이터
  log_status   백업용 서버 로그에 대한 정보
  memory_summary_by_account_by_event_name memory_summary_by_account_by_event_name 계정 및 이벤트 이름별 메모리 작업
  memory_summary_by_host_by_event_name memory_summary_by_host_by_event_name 호스트 및 이벤트 이름별 메모리 작업
  memory_summary_by_thread_by_event_name memory_summary_by_thread_by_event_name 스레드 및 이벤트 이름당 메모리 작업
  memory_summary_by_user_by_event_name memory_summary_by_user_by_event_name 사용자 및 이벤트 이름별 메모리 작업
  memory_summary_global_by_event_name memory_summary_global_by_event_name 이벤트 이름당 전역 메모리 작업
  metadata_locks metadata_locks 메타데이터 잠금 및 잠금 요청
mutex_instances mutex_instances mutex_instances 뮤텍스 동기화 개체 인스턴스
objects_summary_global_by_type objects_summary_global_by_type objects_summary_global_by_type 개체 요약
performance_timers performance_timers performance_timers 사용 가능한 이벤트 타이머
  persisted_variables   mysqld-auto.cnf 파일 내용
  prepared_statements_instances prepared_statements_instances 준비된 명령문 인스턴스 및 통계
  processlist   프로세스 목록 정보(show processlist 와 동일)
  replication_applier_configuration replication_applier_configuration 복제본의 복제 적용자에 대한 구성 매개변수
  replication_applier_filters   현재 복제본에 대한 채널별 복제 필터
  replication_applier_global_filters   현재 복제본의 전역 복제 필터
  replication_applier_status replication_applier_status 복제본의 복제 적용자의 현재 상태
  replication_applier_status_by_coordinator replication_applier_status_by_coordinator SQL 또는 조정자 스레드 적용자 상태
  replication_applier_status_by_worker replication_applier_status_by_worker 작업자 스레드 적용자 상태
  replication_asynchronous_connection_failover   비동기 연결 장애 조치 메커니즘에 대한 소스 목록
  replication_asynchronous_connection_failover_managed   비동기식 연결 장애 조치 메커니즘을 위한 관리 소스 목록
  replication_connection_configuration replication_connection_configuration 소스 연결을 위한 구성 매개변수
  replication_connection_status replication_connection_status 현재 소스 연결 상태
  replication_group_member_stats replication_group_member_stats 복제 그룹 구성원 통계
  replication_group_members replication_group_members 복제 그룹 구성원 네트워크 및 상태
rwlock_instances rwlock_instances rwlock_instances 동기화 개체 인스턴스 잠금
session_account_connect_attrs session_account_connect_attrs session_account_connect_attrs 현재 세션당 연결 속성
session_connect_attrs session_connect_attrs session_connect_attrs 모든 세션에 대한 연결 속성
  session_status session_status 현재 세션의 상태 변수
  session_variables session_variables 현재 세션의 시스템 변수
setup_actors setup_actors setup_actors 새 포그라운드 스레드에 대한 모니터링을 초기화하는 방법
setup_consumers setup_consumers setup_consumers 이벤트 정보를 저장할 수 있는 소비자
setup_instruments setup_instruments setup_instruments 이벤트를 수집할 수 있는 계측 개체의 클래스
setup_objects setup_objects setup_objects 모니터링해야 하는 개체
  setup_threads   계측된 스레드 이름 및 속성
setup_timers   setup_timers  
socket_instances socket_instances socket_instances 활성 연결 인스턴스
socket_summary_by_event_name socket_summary_by_event_name socket_summary_by_event_name 이벤트 이름당 소켓 대기 및 I/O
socket_summary_by_instance socket_summary_by_instance socket_summary_by_instance 소켓 대기 및 인스턴스당 I/O
  status_by_account status_by_account 계정당 세션 상태 변수
  status_by_host status_by_host 호스트 이름당 세션 상태 변수
  status_by_thread status_by_thread 세션당 세션 상태 변수
  status_by_user status_by_user 사용자 이름별 세션 상태 변수
  table_handles table_handles 테이블 잠금 및 잠금 요청
table_io_waits_summary_by_index_usage table_io_waits_summary_by_index_usage table_io_waits_summary_by_index_usage 인덱스당 테이블 I/O 대기
table_io_waits_summary_by_table table_io_waits_summary_by_table table_io_waits_summary_by_table 테이블당 테이블 I/O 대기
table_lock_waits_summary_by_table table_lock_waits_summary_by_table table_lock_waits_summary_by_table 테이블당 테이블 잠금 대기
threads threads threads 서버 스레드에 대한 정보
  tls_channel_status   각 연결 인터페이스에 대한 TLS 상태
  user_defined_functions   등록된 로드 가능한 함수
  user_variables_by_thread   스레드당 사용자 정의 변수
users users user_variables_by_thread 클라이언트 사용자 이름당 연결 통계
  variables_by_thread users 세션당 세션 시스템 변수
  variables_info variables_by_thread 시스템 변수가 가장 최근에 설정되는 방식

✔️ 모듈 사용

import pandas as pd
import matplotlib
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import font_manager as fm
from sqlalchemy import create_engine
import urllib.parse

✔️ 추가 설정

np.set_printoptions(precision=3)            # 소수점 3번째 자리에서 반올림
pd.set_option('display.max_rows', None)     # Row 생략없이 출력
pd.set_option('display.max_columns', None)  # Column 생략없이 출력
pd.set_option('display.max_colwidth', None) # 컬럼의 내용이 길어도 생략없이 출력
pd.set_option('display.width', None)
pd.set_option('display.float_format', '{:.5f}'.format) # 8.500000e+01 이런 형식의 지수표현을 하고 싶지 않을 경우

✔️ 엑셀파일 불러오기

# Jupyter Notebook이 실행중인 서버의 파일만 불러올 수 있습니다.
# 절대 경로를 입력합니다.
# Sheet 이름은 대소문자를 구분합니다.

df_user_calc = pd.read_excel(r'D:\6월\유저지표_20220708.xlsx', sheet_name='user_calc');

✔️ 엑셀파일 내보내기

# Jupyter Notebook이 설치된 서버에 파일이 저장됩니다.
# 인덱스 컬럼은 내보내지 않습니다.

UserData.to_excel(r'd:\UserData.xlsx', sheet_name='UserData', index=False)

✔️ 기존 엑셀 파일에 Sheet를 추가하여 내보내기

with pd.ExcelWriter(r'D:\user_data\2022_유저통계.xlsx', engine='openpyxl', mode='a') as writer:
    temp.to_excel(writer, sheet_name='2022_유저통계')

✔️ 모듈 사용

import pandas as pd
import matplotlib
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import font_manager as fm
from sqlalchemy import create_engine
import urllib.parse

✔️ 추가 설정

np.set_printoptions(precision=3)            # 소수점 3번째 자리에서 반올림
pd.set_option('display.max_rows', None)     # Row 생략없이 출력
pd.set_option('display.max_columns', None)  # Column 생략없이 출력
pd.set_option('display.max_colwidth', None) # 컬럼의 내용이 길어도 생략없이 출력
pd.set_option('display.width', None)
pd.set_option('display.float_format', '{:.5f}'.format) # 8.500000e+01 이런 형식의 지수표현을 하고 싶지 않을 경우

 

✔️ DB 접속 및 쿼리 실행

# DB 접속 객체 생성
sqlEngine = create_engine("mysql+pymysql://root:Qwer1234%21%40%23%24@10.240.71.71:25000", encoding='utf8', pool_recycle=3600)
dbConnection = sqlEngine.connect()   # DB 접속
user_data = pd.read_sql("select * from a209.user_info where user_id = 'a209' ", dbConnection); # 쿼리 실행
dbConnection.close() # 접속 종료

 

Jupyter notebook에 이미지를 추가하는 방법입니다. (Jupyter notebook 버전 6.4.8)

 

1. 코딩으로 이미지 출력

명령창은 Code로 설정하고 아래와 같이 입력 후 실행하면 화면에 이미지가 표시됩니다..

코딩창이 보이기에 이쁘지는 않습니다.

from IPython.display import Image
Image('images/방수어사_라온테크_min.jpg')

 ✔️ 아래는 출력 결과입니다.


2. markdown으로 이미지 출력 - 1

코딩창을 Markdown으로 설정 후 아래와 같이 입력후 실행하시면 코딩영역 없이 이미지를 화면에 출력합니다.

# Markdown으로 설정 후 실행하면 이미지가 출력됩니다.
![nn](images/방수어사_라온테크_min.jpg)

 ✔️ 출력 결과

 

3. markdown으로 이미지 출력 - Img 태그 사용

# Markdown에서 이미지 태그를 사용할 수 있고 스타일도 정의할 수 있습니다.
<img src="Images/방수어사_라온테크_min.jpg" style='margin-left:20px; width:700px; height:200px'>

✔️ 출력 결과

 

⭐ 본 이미지는 동생 창업기념으로 제가 레이저로 나무에 각인한 작품입니다.

Jupyter Notebook QHD 해상도의 모니터에서는 최대 화면으로 실행하게되면 좌우 여백이 너무 넓어서 불편합니다.

아래 경로의 파일에서

C:\ProgramData\Anaconda3\Lib\site-packages\notebook\static\style\style.min.css

아래와 같이 수정 후 페이지를 새로고침 하시면

@media (min-width: 1200px) {
  .container {
    /* width: 1140px; -- 기존 코드는 주석처리 */ 
	width: 98%;  /* 가로폭의 98% 가득 차도록 설정 */
  }
}

코딩 영역이 가로폭에 꽉 차서 표시됩니다.

 

파일명 혹은 변수에 '-'가 제거된 날짜값을 사용하게 되는데(20220715)

날짜 형식으로 변환할 때 MySQL 에서는 str_to_date 함수를 사용할 수 있습니다.

%Y 4자리 년도 %T hh:mm:ss
%y 2자리 년도 %r hh:mm:ss AM/PM
%m 2자리 월(01, 02, 10, 11 ...) %M 월 (영문 전체 March, July ...)
%c 월(1, 2, 10, 11 ...) %b 월 (영문 축약 Mar, Jul ...)
%d 2자리 일(01, 01, 10, 11 ...) %W 요일 (영문 전체 Monday, Thursday ...)
%e 일(1, 2, 10, 11 ...) %a 요일 (영문 축약 Mon, Thu ...) 
%H 24시간제 시간    
%l 12시간제 시간    
%i 2자리 분 (05, 15 ...)    
%S 2자리 초 (05, 15 ...)    

사용 방법은 위 포맷을 참고하여 아래와 같이 사용해 주시면 됩니다.

하지만 아래와 같이 31을 넘어가는 날짜가 입력되면 null을 출력하지만 

4월31을 입력할 경우 4월30일 에서 하루 지난 5월1일을 출력하는 오류가 있습니다.

-- MySQL 5.7.37 / MySQL 8.0.23 / MariaDB 10.1.48 모두에서 아래와 같이 출력 됩니다.

select str_to_date(20220230, '%Y%m%d');   -- 2022-03-02 출력 (Error: 22년 2월은 28일 까지만 존재)
select str_to_date(20220430, '%Y%m%d');   -- 2022-04-30 출력
select str_to_date(20220431, '%Y%m%d');   -- 2022-05-01 출력 (Error: 4월은 30일 까지만 존재함)
select str_to_date(20220432, '%Y%m%d');   -- null 출력
select str_to_date(20220531, '%Y%m%d');   -- 2022-05-31 출력
select str_to_date(20220532, '%Y%m%d');   -- null 출력

입력된 날짜의 무결성이 중요하다면 함수를 만들어 사용하는 것이 좋을 것 같습니다.

쿼리창에서 괄호를 열때 자동으로 닫음이 추가되어 불편하신 분들은 아래 옵션을 해제하시면 됩니다.

Editor > General > Smart Keys 메뉴에 들어가셔서.

Tencent 공식 문서 : https://tendbcluster.net/book-en/

설치 필요 사항

(1) Docker 설치

  1. yum 패키지 업데이트

      $ yum -y update

  2. yum-utils 설치

      $ sudo yum install -y yum-utils

  3. Docker 저장소 등록

      $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  4. Docker 버전 조회

      $ yum list docker-ce --showduplicates | sort -r

  5. 특정 버전의 Docker 설치

      $ sudo yum install docker-ce-20.10.7-3.el7 docker-ce-cli-20.10.7-3.el7 containerd.io

  6. 버전 확인

      $ docker --version

  7. 서비스 시작

      $ systemctl start docker

      $ systemctl enable docker

      $ systemctl status docker

 

(2) Docker-compose 설치

  1. 설치 버전 확인

      https://github.com/docker/compose/tags

      https://github.com/docker/compose/releases/tag/1.27.4

  2. usr/local/bin 폴더에 다운로드

  $ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

  3. 실행 권한 부여

      $ sudo chmod +x /usr/local/bin/docker-compose

  4. 심볼링링크 설정
      $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

  5. 버전 확인

      $ docker-compose --version

(3) helm 설치

  1. 설치할 버전 확인

      https://github.com/helm/helm/releases?page=3

  2. 다운로드

      $ wget https://get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz

  3. 압축 해제

      $ tar xvzf helm-v2.17.0-linux-amd64.tar.gz

  4. 파일 이동

      $ sudo cp linux-amd64/tiller /usr/local/bin

      $ sudo cp linux-amd64/helm /usr/local/bin

  5. 권한 설정

      $ sudo chown root:docker /usr/local/bin/tiller

      $ sudo chown root:docker /usr/local/bin/helm

  6. 심볼릭 링크 설정
      $ sudo ln -s /usr/local/bin/helm /usr/bin/helm
      $ sudo ln -s /usr/local/bin/tiller /usr/bin/tiller

 

  7. 버전 확인

      $ helm version

      $ tiller --version

 

(4) Tendbcluster 도커 설치

  1. 환경설정파일 다운로드

      $ sudo curl -L "https://github.com/TenDBCluster/TenDBCluster-DockerCompose/archive/refs/heads/master.zip" -o tendbcluster-docker-compose.zip

  2. 압축 해제

      $ unzip tendbcluster-docker-compose.zip

  3. 폴더명 변경

      $ mv TenDBCluster-DockerCompose-master/ tendbcluster-docker-compose/

  4. Docker 이미지 다운로드

      $ cd tendbcluster-docker-compose && docker-compose pull

  5. 이미지 마운트

      $ docker-compose up -d

  6. 상태 조회

      $ docker ps -a

  7. 노란색 영역의 Port 번호로 MySQL 접속 테스트 

 

✳️ Tspider 가 설치된 CentOS 7 이미지 공유(VmWare)

OS : CentOS7OS

접속 정보 : root / Qwer1234!@#$ , tspider / Qwer1234!@#$

Tspider 접속 정보 : tendbcluster / tendbclusterpass

Google Drive : https://drive.google.com/file/d/17AnTdSycpYfAJDCXOF2uz_XwwZQXeDqL/view?usp=sharing

파일 용량 정보 : 

  - 압축 : 2.5 GB

  - 압죽 해제 : 10.9 GB

'Database & Data > Tspider' 카테고리의 다른 글

(1) 텐센트의 TSpider 소개  (2) 2021.01.03

데이터를 모으고 DB화하여 공유하는게 취미 입니다.

이번에는 다음 사이트에서 확인 가능한 대한민국 환율정보를 모아봤습니다.

✳️ MySQL DB에 저장 후 백업 파일로 공유드립니다.

https://finance.daum.net/exchanges/FRX.KRWUSD

 

 

환율 상세 | 다음 금융

 

finance.daum.net

✅ 일자별 환율 정보를 DB에 저장

 

✅ 대상 국가

currencyCode item_count min_date max_date nation_name
AED 3837 2006-01-02 2021-06-18 아랍에미리트
AUD 3837 2006-01-02 2021-06-18 호주
BDT 3837 2006-01-02 2021-06-18 방글라데시
BHD 3837 2006-01-02 2021-06-18 바레인
BND 3837 2006-01-02 2021-06-18 브루나이
BRL 3806 2006-01-02 2021-06-18 브라질
CAD 3817 2006-01-02 2021-06-18 캐나다
CHF 3837 2006-01-02 2021-06-18 스위스
CNY 3827 2006-01-02 2021-06-18 중국
CZK 1884 2013-11-01 2021-06-18 체코
DKK 3820 2006-01-02 2021-06-18 덴마크
EGP 3837 2006-01-02 2021-06-18 이집트
EUR 3837 2006-01-02 2021-06-18 유로
GBP 3836 2006-01-02 2021-06-18 영국
HKD 3837 2006-01-02 2021-06-18 홍콩
HUF 3311 2007-06-01 2021-06-18 헝가리
IDR 3837 2006-01-02 2021-06-18 인도네시아
ILS 3673 2006-01-02 2021-06-18 이스라엘
INR 3817 2006-01-02 2021-06-18 인도
JOD 3653 2006-01-02 2021-06-18 요르단
JPY 3837 2006-01-02 2021-06-18 일본
KWD 3837 2006-01-02 2021-06-18 쿠웨이트
KZT 1884 2013-11-01 2021-06-18 카자흐스탄
MNT 1884 2013-11-01 2021-06-18 몽골
MXN 3837 2006-01-02 2021-06-18 멕시코
MYR 3830 2006-01-02 2021-06-18 말레이시아
NOK 3837 2006-01-02 2021-06-18 노르웨이
NZD 3830 2006-01-02 2021-06-18 뉴질랜드
PHP 3837 2006-01-02 2021-06-18 필리핀
PKR 3827 2006-01-02 2021-06-18 파키스탄
PLN 3321 2007-06-01 2021-06-18 폴란드
QAR 1884 2013-11-01 2021-06-18 카타르
RUB 3462 2006-11-08 2021-06-18 러시아
SAR 3837 2006-01-02 2021-06-18 사우디
SEK 3837 2006-01-02 2021-06-18 스웨덴
SGD 3837 2006-01-02 2021-06-18 싱가포르
THB 3837 2006-01-02 2021-06-18 태국
TRY 1884 2013-11-01 2021-06-18 터키
TWD 3816 2006-01-02 2021-06-18 대만
USD 3837 2006-01-02 2021-06-18 미국
VND 3485 2006-09-29 2021-06-18 베트남
ZAR 3455 2006-11-17 2021-06-18 남아공

✅ 기간 : 2006-01-02 ~ 2021-06-18

✅ MySQL 백업 파일

db_exchange_rate_backup_20210619.7z
2.61MB

DataGrip 을 사용하다 보면 다양한 편의성 및 기능으로 인해 편리한 경우도 있지만, 의외로 불편한 경우도 많습니다. 

sp/함수 인자의 이름이 표시되는 아래 기능이 그런 경우가 아닐까 싶습니다. 

우측 설정시/비 설정시 이미지를 보시고 어떤 기능인지 확인해 보시면 될것 같습니다. 

기본은 활성화 입니다.

TSpider 는 MariaDB의 Spider 엔진을 기반으로 텐센트에서 기능을 추가하여 수정한 엔진 입니다.

Spider 에 대한 자세한 설명은 : https://rastalion.me/spider-%EC%97%94%EC%A7%84%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%83%A4%EB%94%A9-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95-01/

 

SPIDER 엔진을 이용한 샤딩 환경 구축 #01 - RastaLion's IT Blog

  Spider 엔진? Spider 스토리지 엔진은 샤딩 기능이 내장 된 스토리지 엔진입니다. 파티셔닝 및 xa 트랜잭션을 지원하며 다른 MariaDB 인스턴스의 테이블을 마치 동일한 인스턴스에있는 것처럼 처리

rastalion.me

 

Spider 와 달리 TSpider에서는 샤드키를 정의하기위해 CRC32()함수를 사용할 수 있다는 점이 큰 차이점 입니다.

crc32 함수를 통하여 문자형 컬럼도 샤드키로 사용할 수 있습니다.

Spider TSpider

 

 

 

 

또한 tdbcl 을 통하여 TSpider DB에서 일반적은 Create 구문을 실행하면 tdbcl이 자동으로 Spider 구문으로 변경하여

Spider DB에 테이블을 생성하며, 또한 자동으로 각 node 에 도 동일한 구조의 테이블을 생성 합니다.

이후 Spider DB에서 조회 쿼리등을 실행하여 됩니다.

자세한 사항은 아래 주소의 공식 문서를 참고하시면 됩니다.

✔ TenDB Cluster(TSpider) 공식 문서 : tendbcluster.net/book-en/

 

Introduction · TenDB Cluster Manual

No results matching ""

tendbcluster.net

TenDB Cluster 구성도

TSpider 구성도

 

다음으로는 TendbCluster(TSpider)를 Docker 환경으로 구축하는 방법을 설명 드리겠습니다.

단일 PC에 동일 버전의 MySQL(MariaDB)을 2개 설치하기 위해서는 Installer 파일로는 설치가 되지 않습니다.

그럴경우 직접 기존 설치된 폴더를 복사하여 MySQL을 구동하는 방법을 설명 드리겠습니다.

현재 제 노트북에는 MySQL 이 2개 , MariaDB 가 2개 설치되어 있습니다.

이 중 MySQL 8.0버전의 DB를 하다 더 설치 및 구동해 보겠습니다.

 

1. MySQL Server 8.0 설치 & 데이터 폴더 복사

  - 총 2개 폴더를 복사하여 다른 이름으로 붙여넣기 해주셔야 합니다.

  - 저는 _Sub_1 으로 복사하겠습니다.

    ✔ 프로그램 폴더

원본 복사
c:\Program Files\MySQL\MySQL Server 8.0\ c:\Program Files\MySQL\MySQL Server 8.0_Sub_1\

    ✔ 데이터 폴더

원본 복사
c:\ProgramData\MySQL\MySQL Server 8.0\  

 

2. 복사한 데이터 폴더의 my.ini 수정

    ✔ port, report_port, datadir, basedir 항목의 값을 변경합니다. 4개 항목 외 기존 경로 및 port가 지정된 항목은 함께 수정해 주어야 합니다.

원본 복사

 

3. MySQL Install 명령어 실행 & 서비스 등록

    ✔ 복사한 프로그램 폴더로 이동하여 아래와 같이 Install 명령 실행

    ✔ [복사한프로그램폴더\bin\mysqld.exe] --install  [서비스명] --defaults-file="복사한 데이터 폴더의 ini파일"

    ✔ Ex:  "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --install MySQL57_25000 --defaults-file="F:\MySQL\MySQL Server 5.7_25000\my.ini"

  • 위에서 입력한 서비스명으로 서비스탭에 등록 됩니다.
  • 반드시 관리자 권한으로 CMD를 실행하셔야 서비스가 정상 등록됩니다.
  • 꼭 복사한 프로그램폴더의 mysqld 실행 파일의 경로를 명시해 주시길 바랍니다.

 

4. 서비스 시작

    ✔ 서비스 탭에서 시작 버튼을 눌러 주시면 됩니다.

설명에 사용한 MySQL 버전 : 5.7.20

 

1. Scheduler 확인

show global variables like '%schedule%';

사용 가능할 경우 ON, 그렇지 않을 경우 OFF 로 표시 됩니다.

1-1. Scheduler 사용 설정

   ini를 수정하게 되면 MySQL 을 재시작 해주어야 합니다. 그렇지 않을 경우 ini 수정 후 set global 명령어를 통해서

   수동으로 설정을 변경해 주시면 됩니다. 추후 재시작 하게되면 그때부터는 ini의 설정에 따라서 동작 하게 됩니다.

    ini 에 아래 구문을 추가합니다. 

event_scheduler = 1

혹은 

event_scheduler = ON

   "1" 이나 "ON" 이나 동일하게 동작(설정) 됩니다.

1-2. Process 확인

show processlist;

 Scheduler 설정을 정상적으로 완료하였을 경우 아래와 같이 event_scheduler 데몬이 접속 중임이 확인 됩니다.

 

2. Schedule 생성

  ◈ Schedule 은 DB에 종속되기에 명령을 실행할 DB가 선택된 상태에서 생성해야 합니다.

DROP EVENT IF EXISTS `calc_ranking`;
DELIMITER $
CREATE EVENT IF NOT EXISTS `calc_ranking`
ON SCHEDULE
	EVERY 5 HOUR                  -- 5시간 마다 실행 (사용 가능 형식: second, minute, day)
	STARTS '2020-01-01 00:00:00'  -- 지정하지 않을 경우 현재 시간부터 5시간 경과 후에 첫 스케줄러가 동작됨
ON COMPLETION PRESERVE
ENABLE
COMMENT 'calc_profile_ranking'
DO 
BEGIN
    call test_procedure(1);
    UPDATE tbl_test set action_status = 1;
END$
DELIMITER ;

  - 매일 5시에 실행되는 작업을 만들고 싶을 경우 ON SCHEDULE 부분을 아래와 같이 수정 합니다.

ON SCHEDULE
	EVERY 1 DAY                   -- 하루에 한번
	STARTS '2020-01-01 05:00:00'  -- 기준 시각이 05시 이기 때문에 매일 5시에 스케줄러 실행

  - 특정 문서의 경우 매일 특정 시간에 실행되는 스케줄을 등록하기 위해 아래와 같은 구문을 사용하는데

그럴 필요 없이 과거 날짜의 특정 시간을 시작시간으로 설정하면 해당 시간 을 기준으로 하루에 한번 실행 됩니다.

STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)

 

3. Schedule 확인

  ◈ Schedule 은 DB에 종속되기에 명령을 실행할 DB가 먼저 선택되어 있어야 합니다.

SHOW EVENTS;	-- 현재 선택된 DB에 등록된 Schedule을 조회 합니다.
or
SELECT * FROM information_schema.EVENTS;  -- 모든 DB에 등록된 설정을 조회 합니다.

SHOW EVENTS
SELECT * FROM information_schema.EVENTS

- Schedule 등록 스크립트를 확인하실 수 있습니다.

SHOW CREATE EVENT `Schedule Name`;
SHOW CREATE EVENT `calc_ranking`;

- Create Event 컬럼의 내용은 아래와 같습니다.

CREATE DEFINER=`root`@`%` EVENT `calc_ranking` 
ON SCHEDULE EVERY 5 HOUR STARTS '2020-01-01 00:00:00' 
ON COMPLETION PRESERVE ENABLE COMMENT 'calc_profile_ranking' 
DO BEGIN
    call test_procedure(1);
    UPDATE tbl_test set action_status = 1;
 END

 

4. 삭제

DROP event `이벤트명`;
DROP EVENT `calc_ranking`;

 

이상 입니다.

특정 테이블의 조회 결과(대량 ROW)를 파일로 저장하고

저정된 결과 파일을 다시 DB(Table)로 저장하는 방법 입니다.

대량의 Row(수백 MB)이기 때문에 쿼리를 통한 Insert가 아닌 load data 명령을 통해 수행 합니다.

  대상 테이블 구조

tbl_user_mode_score

 

  다량의 조회 결과를(1000만건) 파일로 저장하는 쿼리 입니다.

select * from tbl_user_mode_score limit 10000000
INTO OUTFILE 'e:\query_result_1000man.txt'
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
LINES TERMINATED BY '\n';

  - 조회 결과는 아래와 같습니다. (Field 와 Field 는 탭으로 구분)

Row 수: 1000만건, 시간: 7.203 sec, 파일 크기: 367 MB

 

 

 위 조회 결과를 별도 Table에 저장하는 방법 입니다.

    1. 데이터를 저장할 DB에 조회 내용과 동일한 구조의 테이블을 생성 합니다.

    2. cmd 창에서 mysql 콘솔에 접속 합니다.

    3. 아래 명령어를 실행하여 데이터를 입력 합니다.

load data infile 'e:/query_result_1000man.txt' into table tbl_user_mode_score ( usn, mode_idx, win_cnt, lose_cnt, last_play_date ) ;

    - 입력 완료시 메시지 : 입력 건수 및 오류 상황이 표시 됩니다.

Row 수: 1000만건, 시간: 1 min 6.337 sec

 

이상 입니다.

Oracle 과 MSSQL에 있는 DB Link 서비스를 MySQL에서 지원하는 FEDERATED 엔진을 이용하여 구현하는 방법 입니다.


1. 설치되어 있는 엔진 확인

  - CentOS에서 yum 으로 설치했을때 기본적으로 사용 가능한 엔지들의 목록 입니다.

2. 엔진을 사용할 수 있도록 설치

 

3. FEDERATED 엔진의 설치여부 확인

  - FEDERATED 엔진이 목록에 표시되지만 사용 가능하지 않은 상태 입니다.


4. 엔진 사용 가능 하도록 my.cnf 수정

  - [mysqld] 하위에  federated 항목을 추가 합니다.


5. 엔진의 상태를 확인 합니다.

 - FEDERATED 엔진의 Support 상태가 YES 로 변경 되었습니다.


----------------------------- FEDERATED 엔진을 사용하여 테이블을 생성하여 원격지 테이블과 연결 -------------------------

1. 원격지에 테이블을 생성 합니다.

- 실제 데이터가 입력되는 테이블 입니다.

- 데이터 폴더에는 .frm(구조) / .ibd(데이터) 파일이 생성 됩니다.

CREATE TABLE `cityholic_db`.`cart_product` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '아이디',

  `users_id` bigint(20) unsigned NOT NULL COMMENT '고객아이디',

  `product_id` bigint(20) NOT NULL COMMENT '상품아이디',

  `option_code` varchar(50) NOT NULL COMMENT '상품옵션코드',

  `quantity` int(11) NOT NULL DEFAULT '0' COMMENT '상품 개수',

  PRIMARY KEY (`users_id`,`product_id`,`option_code `),

  UNIQUE KEY `id_UNIQUE` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='카트에 담긴 상품';


◈ 만약 원격지 DB의 비밀번호에 특수문자'@' 를 사용하는 경우 2번 방식으로는 테이블을 생성할 수 없으니

     2번을 제외하고 3번 항목부터 진행해 주시면 됩니다.


2. 로컬에 테이블을 생성 합니다.

 - 원격지의 테이블을 참조하기 위한 테이블 입니다

 - 데이터 폴더에는 .frm(구조) 파일만 생성 됩니다.

CREATE TABLE `cityholic_db`.`cart_product` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '아이디',

  `users_id` bigint(20) unsigned NOT NULL COMMENT '고객아이디',

  `product_id` bigint(20) NOT NULL COMMENT '상품아이디',

  `option_code` varchar(50) NOT NULL COMMENT '상품옵션코드',

  `quantity` int(11) NOT NULL DEFAULT '0' COMMENT '상품 개수',

  PRIMARY KEY (`users_id`,`product_id`,`option_code `),

  UNIQUE KEY `id_UNIQUE` (`id`)

) ENGINE=FEDERATED DEFAULT CHARSET=utf8 COMMENT='카트에 담긴 상품'

CONNECTION='mysql://root:dldusrn1@10.3.0.27:3306/cityholic_db/cart_product';

   - CONNECTION 옵션의 구성 = 'mysql://[계정]:[비밀번호]@[서버ip]:[port]/[원격지DB명]/[원격지 테이블명]'

   - Pass 에서 특수문자 '@' 를 사용하는 경우 아래와 같이 테이블 생성시 오류가 발생합니다.

     



3. 테이블 생성시 사용할 SERVER 개체를 생성 합니다.

1
2
3
CREATE SERVER [서버명]
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'root', PASSWORD 'XXXX@XXXX', HOST '192.168.197.128', PORT 3306, DATABASE 'db_link_test');
cs

      - 생성된 서버 정보를 조회합니다.

1
SELECT * FROM mysql.servers;
cs


4. 생성된 서버로 테이블을 생성 합니다.

- 로컬에 생성하는 테이블과 원격지 테이블이 동일하다면 CONNECTION 옵션에서 테이블명은 생략 가능합니다.

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `cityholic_db`.`cart_product` (
  `id`             bigint(20)     NOT NULL AUTO_INCREMENT COMMENT '아이디',
  `users_id`     bigint(20)     unsigned NOT NULL COMMENT '고객아이디',
  `product_id`     bigint(20)     NOT NULL COMMENT '상품아이디',
  `option_code` varchar(50NOT NULL COMMENT '상품옵션코드',
  `quantity`     int(11)     NOT NULL DEFAULT '0' COMMENT '상품 개수',
 
  PRIMARY KEY (`users_id`,`product_id`,`option_code `),
  UNIQUE KEY `id_UNIQUE` (`id`)
ENGINE=FEDERATED DEFAULT CHARSET=utf8 COMMENT='카트에 담긴 상품'
CONNECTION='[서버명]/cart_product';
cs


>> . 이상 모든 설정을 완료 했다면 로컬에서 원격지의 Table을 로컬 테이블 처럼 사용 가능합니다. select, insert, update, delete 모두 가능 합니다.


MySQL / MariaDB에서 Slow Query Log를 활성화하기 위한 방법과 실시간으로 변경 가능한 Variable에 대해서 설명드리겠습니다. 

개인적으로는 Slow Query Log를 테이블로 관리하는것을 좋아합니다. 실행된 쿼리 검색 및 통계내가가 편리하기 때문입니다.

아래 3개의 쿼리를 실행하여 설정 가능한 변수를 확인할 수 있습니다. 쿼리 결과

show global variables like '%slow%';

show global variables like '%long%';

show global variables like '%log_output%';

 

>> my.ini 파일 수정 : 노란색 영역의 3개 항목을 추가하신 후 MySQL / MariaDB 서비스를 재시작해주시면 됩니다.

set global 쿼리를 사용해서 설정을 변경할 수 있습니다.

하지만 long_query_time 변수는, 쿼리로는 변경은 가능하지만 실제 반영은 안 되고 있기에 ini 파일에서 설정해 주셔야 합니다.

my.ini 수정

slow_query_log, log_output 은 운용 중인 상태에서 서비스 재시작 없이 설정 변경이 가능하며 즉시 해당 설정이 적용됩니다.

제어판 > 서비스 > 재시작

 

>> 테이블에 기록된 Slow Query 결과입니다.

Slow Query Log in Table

Index 정보를 조회하여 하나의 컬럼에 Key 컬럼을 ','로 구분하여 출력하는 쿼리 입니다.
 
실행 결과)
쿼리)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
select ta.table_name
    , index_name, max(tb.constraint_type) INDEX_DESCRIPTION  
    , concat_ws(', ', max(col_1), max(col_2), max(col_3), max(col_4), max(col_5)  
    , max(col_6), max(col_7), max(col_8), max(col_9), max(col_10)) INDEX_KEYS  
from (  
        select table_schema, `table_name`  
        , (CONSTRAINT_NAME) INDEX_NAME  
        , ('') INDEX_DESCRIPTION  
        , (case ordinal_position when 1 then column_name else null end) col_1  
        , (case ordinal_position when 2 then column_name else null end) col_2  
        , (case ordinal_position when 3 then column_name else null end) col_3  
        , (case ordinal_position when 4 then column_name else null end) col_4  
        , (case ordinal_position when 5 then column_name else null end) col_5  
        , (case ordinal_position when 6 then column_name else null end) col_6  
        , (case ordinal_position when 7 then column_name else null end) col_7  
        , (case ordinal_position when 8 then column_name else null end) col_8  
        , (case ordinal_position when 9 then column_name else null end) col_9  
        , (case ordinal_position when 10 then column_name else null end) col_10  
        from information_schema.KEY_COLUMN_USAGE  
        where table_schema = 'db_schema' and `table_name` like '%info%'  
    ) ta  
left join information_schema.table_constraints tb   
on ta.table_schema = tb.table_schema and ta.`table_name` = tb.`table_name` and ta.index_name = tb.constraint_name  
group by ta.table_name, index_name 
order by ta.table_name, index_name asc
;
 
cs

온도/습도 등의 기상 데이터를 LabVIEW를 통해 DB에 저장하고 싶다는 문의에 대한 답변 입니다. 

Q : 온도/습도 등의 몇개의 기상데이터가 10초마다 몇달을 txt파일로 저장하는데,
     DB를 쓰면 특정 구간의 평균/최대/최소 등의 통계 혹은 rawdata 값을 쉽게 뽑아 낼 수 있는지요?
A : 날짜 컬럼으로 Index(목ㅊ, 색인) 가 걸려 있다면 특정 날짜 구간의 데이터를 빠르게 추출 및 통계(MIN, AVG, MAX 등)도 빠르게 계산이 가능 합니다. 

 

어떤 DB를 사용해야 좋을 지 문의하신다면 결론부터 말해서 MSSQ(Express) 버전으로 시작하시길 권해드립니다.

Express 버전의 경우 개인사용자는 무료이고 MSSQL 자체가 GUI 환경이어 타 DB에 비해 설치 및 운용이 간편하여

접근성이 좋습니다. 물론 성능도 타 DB에 비해 절~대 뒤떨어 지지 않습니다.

MSSQL 단점 은

- Windos 계열의 OS 에서 (만?) 설치 및 운용이 가장 편리합니다. 

물론 리눅스에도 설치가 가능하다는데, 직접 설치해 본 적이 없어서, 설치 난이도가 어떤지 알지 못합니다.

https://docs.microsoft.com/ko-kr/sql/linux/sql-server-linux-setup?view=sql-server-ver15

 

SQL Server on Linux 설치 지침 - SQL Server

SQL Server on Linux를 설치, 업데이트 및 제거합니다. 이 문서에서는 온라인, 오프라인 및 무인 시나리오를 설명합니다.

docs.microsoft.com

 

------------------------------------------------------ LabVIEW ------------------------------------------------------

LabVIEW : https://www.ni.com/ko-kr.html

 

자동화 테스트 및 자동화 측정 시스템 - National Instruments

업계 최고의 측정 정확성을 제공하면서 비용, 설계 및 디바이스 관련 문제를 해결할 수 있도록 지원하는 NI 반도체 테스트 솔루션을 만나보십시오.

www.ni.com

LabVIEW 와 DB를 연동하려면 애드온을 구매해야 한다는군요.

LabVIEW DB연동 모듈
LabVIEW : ODBC 드라이버를 통한 DB 연동 가능

 

------------------ 아래 1번 부터 4번 까지 진행하시면 테스트 환경 구축은 가능하시리라 생각 됩니다.  ---------------

1. MSSQL Express 다운로드 및 설치방법 블로그 입니다. (퍼왔습니다.)

https://eine.tistory.com/entry/Microsoft-SQL-Server-2019-Express-%EC%84%A4%EC%B9%98

 

Microsoft SQL Server 2019 Express 설치 + SSMS

MS-SQL 설치 MS-SQL을 써야 할 일이 생겨서 한번 설치해보자. 테스트용으로만 필요하기 때문에 무료 테스트용 버전인 Express를 설치해보도록 하겠다. https://www.microsoft.com/ko-kr/sql-server/sql-server-dow..

eine.tistory.com

 

 

2. MSSQL DB 관리툴 입니다.

SSMS(SQL Server Management Studio)

https://docs.microsoft.com/ko-kr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

 

SSMS(SQL Server Management Studio) 다운로드 - SQL Server Management Studio (SSMS)

최신 버전의 SSMS(SQL Server Management Studio)를 다운로드합니다.

docs.microsoft.com

 

 

3. 설치 완료 후 DB 생성 및 DB 사용 계정 생성 방법 입니다. (퍼왔습니다.)

https://server-talk.tistory.com/248

 

MSSQL 데이터베이스(DB) 생성과 새 로그인 사용자 추가

MSSQL 데이터베이스(DB) 생성과 새 로그인 사용자 추가 알아보기 이번에는 MSSQL에서 데이터베이스(DB) 생성과 계정생성을 알아보도록 하겠습니다 이전 글 : Windows SQL Server 2014 Express 설치 - http://serv..

server-talk.tistory.com

 

4. LabVIEW - MSSQL 연동 방법입니다. (퍼왔습니다.)

https://guslabview.tistory.com/66

 

[LabVIEW] MSSQL UDL 파일 생성 및 랩뷰와 연동 하기

[LabVIEW] MSSQL UDL 파일 생성 및 랩뷰와 연동 하기 이 글에서는 LabVIEW와 MSSQL을 연동하는 방식에 대해서 설명을 드리겠습니다. 랩뷰에서 손쉽게 DB에 접속하기 위해서는 UDL 파일이 필요합니다. UDL 파일은 U..

guslabview.tistory.com

 

기타 문의 사항은 게시판에 남겨 주세요.

아래와 같은 테이블에 대하여 USERID 가 존재할 경우에는 UPD_DATE 를 현재 날짜로 갱신하고

존재하지 않을 경우에는 INSERT 하는 쿼리를 Merge Into로 만들경우 아래와 같이 작성하게 되면

UPDATE 는 되는데 INSERT 는 되지 않습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SET SERVEROUTPUT ON;
 
BEGIN 
 
MERGE INTO TBL_USER TA
USING (SELECT USERIDX, USERID, USERNAME FROM TBL_USER WHERE USERID='6') TB
ON (TA.USERIDX = TB.USERIDX)
WHEN MATCHED THEN
    UPDATE SET TA.UPD_DATE = SYSDATE
WHEN NOT MATCHED THEN
    INSERT (TA.USERIDX, TA.USERID, TA.USERNAME)
    VALUES (6'6''NM_6')
;
dbms_output.put_line(SQL%ROWCOUNT);
COMMIT;
 
END;
 

아래와 같이 변경하시면

데이터가 있을 경우 Update, 없을 경우 Insert를 수행하게 됩니다.

- 중요한 부분은 위 TB 집합을 DUAL 로 변경하고 ON 절에 Where 조건을 기입하였습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SET SERVEROUTPUT ON;
 
BEGIN 
 
MERGE INTO TBL_USER TA
USING DUAL
ON (TA.USERID = '6')
WHEN MATCHED THEN
    UPDATE SET TA.UPD_DATE = SYSDATE
WHEN NOT MATCHED THEN
    INSERT (TA.USERIDX, TA.USERID, TA.USERNAME)
    VALUES (6'6''NM_6')
;
dbms_output.put_line(SQL%ROWCOUNT);
COMMIT;
 
END;
 

 

실행 결과 입니다.

Merge Into 실행 결과

+ Recent posts