MySQL 5.6 パラメータ検討会
7月29日にMyNA(日本MySQLユーザ会)会 2013年7月が行われ、Oracle ACE Directorの@sheeriさん、MyNA会長の@tmtmsさんに混ざって発表をしてきました。運営のみなさま、当日お越しいただいたみなさま、いつもありがとうございます。
今回は@yoku0825さん、@yyamasaki1さんがライトニングトークをされました。@yoku0825さんアイスごちそうさまでした。
私は発表内容について懇親会でいろいろ宿題をもらってしまい、しばらく復習をしていました。ようやく修正が終わりましたのでRevision 2として公開します。
- プレゼンテーション資料 (PDF)
- パラメータ一覧表 Excel、Calc、HTML
復習のついでに、パラメータファイルの叩き台を作成しました。
このパラメータファイルは一部のディレクトリ名、hostname、server_id、server_uuidとssl_cipherを除き、Amazon RDS t1.smallの設定を再現したものです。これをベースにカスタマイズしていくと時間を節約できるのではないかと思います。インスタンスサイズが異なる場合はinnodb_buffer_pool_sizeとmax_connectionsを増減させます。オンプレミスの環境でしたらdefault_time_zoneはSYSTEMの方がよいかもしれません。
コメントアウトされているところは私が独断で追加したパラメータです。新機能を積極的に活用する、また極力詳細なログを出力するという方針で選んでいます。設定値はあくまでも一例ですが、ご参考になればと思います。リファレンスマニュアルにリンクしたものを以下に貼り付けておきます。
[mysqld] ## File Location datadir = /rdsdbdata/db innodb_data_home_dir = /rdsdbdata/db/innodb pid-file = /rdsdbdata/log/mysql-3306.pid log_bin = /rdsdbdata/log/binlog/mysql-bin-changelog log_error = /rdsdbdata/log/error/mysql-error.log general_log_file = /rdsdbdata/log/general/mysql-general.log innodb_log_group_home_dir = /rdsdbdata/log/innodb relay_log = /rdsdbdata/log/relaylog/relaylog slow_query_log_file = /rdsdbdata/log/slowquery/mysql-slowquery.log slave_load_tmpdir = /rdsdbdata/tmp tmpdir = /rdsdbdata/tmp secure_file_priv = /tmp socket = /tmp/mysql.sock ## SSL ssl_ca = /rdsdbdata/rds-metadata/ca-cert.pem ssl_cert = /rdsdbdata/rds-metadata/server-cert.pem ssl_key = /rdsdbdata/rds-metadata/server-key.pem ## InnoDB #innodb_buffer_pool_dump_at_shutdown = ON #innodb_buffer_pool_load_at_startup = ON innodb_buffer_pool_size = 1092M #innodb_checksum_algorithm = crc32 #innodb_file_format = Barracuda #innodb_flush_method = O_DIRECT #innodb_io_capacity = 2000 #innodb_io_capacity_max = 4000 #innodb_large_prefix = ON innodb_log_file_size = 128M #innodb_online_alter_log_max_size = 1G #innodb_print_all_deadlocks = ON ## MyISAM key_buffer_size = 16M ## Memory #max_heap_table_size = 64M #tmp_table_size = 64M ## Binary Log binlog_format = MIXED #enforce_gtid_consistency = ON #expire_logs_days = 14 #gtid_mode = ON log_slave_updates = ON master_info_repository = TABLE #master_verify_checksum = ON max_binlog_size = 128M relay_log_info_repository = TABLE relay_log_recovery = ON #report_host =#report_port = 3306 server_id = 12345 #slave_net_timeout = 30 sync_binlog = 1 ## Slow Query Log log_output = TABLE #log_queries_not_using_indexes = ON #log_slow_slave_statements = ON #log_throttle_queries_not_using_indexes = 60 #long_query_time = 1.0 #slow_query_log = ON ## Connection Management #log_warnings = 2 #max_allowed_packet = 16M #max_connect_errors = 999999999 max_connections = 121 #table_open_cache = 10000 table_open_cache_instances = 16 ## Memory Allocation per Connection read_buffer_size = 256K read_rnd_buffer_size = 512K #sort_buffer_size = 2M ## SQL Behavior #character_set_server = utf8mb4 #collation_server = utf8mb4_general_ci default_time_zone = UTC explicit_defaults_for_timestamp = ON #sql_mode = TRADITIONAL #transaction_isolation = READ-COMMITTED [client] #loose_default_character_set = utf8mb4 socket = /tmp/mysql.sock