mariadb tunning
character-set-server = utf8mb4
#tunning
skip_name_resolve = 1
open_files_limit = 65535
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
#table_open_cache_instances = 64 #MySQL 5.6
sort_buffer_size = 4M
join_buffer_size = 4M
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
#master_info_repository = TABLE #MySQL 5.6
#relay_log_info_repository = TABLE #MySQL 5.6
#gtid_mode = on
#enforce_gtid_consistency = 1
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
lock_wait_timeout = 3600
#explicit_defaults_for_timestamp = 1 #MySQL 5.6
innodb_thread_concurrency = 0
innodb_sync_spin_loops = 100
innodb_spin_wait_delay = 30
transaction_isolation = REPEATABLE-READ
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2867M
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
#innodb_data_file_path = ibdata1:1G:autoextend
#正確做法,如果原本己經有了 http://www.cnblogs.com/ivictor/p/5340822.html
#innodb_data_file_path = ibdata1:原始大小;ibdata2:1G:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
#innodb_max_undo_log_size = 4G
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
#innodb_page_cleaners = 4
innodb_open_files = 65535
innodb_max_dirty_pages_pct = 50
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32
#innodb_file_format = Barracuda
#innodb_file_format_max = Barracuda
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_file_per_table = 1
innodb_online_alter_log_max_size = 4G
#ineinternal_tmp_disk_storage_engine = InnoDB
innodb_status_file = 1
innodb_status_output = 1
innodb_status_output_locks = 1
innodb_stats_on_metadata = 0
#performance_schema
performance_schema = 1
performance_schema_instrument = ‘%=on’
#innodb monitor 5.7後禁用
#innodb_monitor_enable=“module_innodb”
#innodb_monitor_enable=“module_server”
#innodb_monitor_enable=“module_dml”
#innodb_monitor_enable=“module_ddl”
#innodb_monitor_enable=“module_trx”
#innodb_monitor_enable=“module_os”
#innodb_monitor_enable=“module_purge”
#innodb_monitor_enable=“module_log”
#innodb_monitor_enable=“module_lock”
#innodb_monitor_enable=“module_buffer”
#innodb_monitor_enable=“module_index”
#innodb_monitor_enable=“module_ibuf_system”
#innodb_monitor_enable=“module_buffer_page”
#innodb_monitor_enable=“module_adaptive_hash”
key_buffer_size = 32M #16M
max_allowed_packet = 32M #16M
thread_stack = 512K #192K
thread_cache_size = 150 #8
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
query_cache_type = 0
query_cache_limit = 1M
query_cache_size = 0 #16M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 1
log_slow_rate_limit = 1000
log_slow_verbosity = query_plan
server-id = 3306
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1
expire_logs_days = 7
binlog_cache_size = 4M
max_binlog_cache_size = 2G
max_binlog_size = 1G
binlog_format = row
relay_log_recovery = 1
relay-log-purge = 1
程序猿都该知道的MySQL秘籍 - 叶金荣@—–
thread_handling=pool-of-threads
http://www.cnblogs.com/nocode/archive/2013/05/25/3098317.html
-—-
檔案系統 xfs > ext4 >ext 2 or 3
innodb_buffer_pool_size 約物理內存的50%~70%
innodb_data_file_path 分始化大小至少1G
innodb_log_file_size 1G以上
innodb_flush_log_at_trx_commit 0=>最快、數據最不安全, 1=>最慢最安全, 2=>折中
innodb_max_dirty_pages_pct 25~50(25%~50%)為宜
innodb_io_capacity HDD=>1,000左右,SSD=>10,000左右,PCIe SSD=>20,000以上
**kernel io scheduler => dedline SSD=>noop
key_buffer_size 32M以下
sync_binlog 0=>最快,數據最不安全,系統自決定刷新binlog的頻率;1=>最慢最安全,每個event刷新一次;N=>每N個事務刷一次binglog
long_query_time 建議設置小于0.5秒
open_files_limit & innodb_open_files 建議65535
max_connections 突發最大連接數的80%為宜,過大容易導致全部卡死
query_cache_size=0 & query_cache_type=0 關閉
-—-
http://imysql.com/2016/03/11/mysql-faq-why-ibdata1-size-growup.shtml
ibdata1 文件儲存了什麼內容?
Data dictionary
Double write bufer
Insert buffer
Rollback segments
UNDO space
Foreign key constraint system tables
但當 啟用獨立表空間,ibdata1只存放系統數據
innodb_file_per_table = 1
-—-
連接數過高
大部份的不正確做法:殺掉多餘的連接,加人連接數
正確做法:
.限制連接數: max_user_connections
-—-
http://imysql.com/2016/01/13/mysql-optimization-case-howto-find-performance-bottleneck.shtml
檢查指令
vmstat -S m 1
sar -d 1 or w
iotop
mysqladmin pr|grep -v Sleep
-—-
http://imysql.com/2015/12/30/mysql-faq-howto-stat-response-time-shtml.shtml
http://imysql.com/2015/11/04/mysql-faq-some-important-in-explain.shtml
explain
-—-
http://imysql.com/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/3
将操作日志记入syslog并且发送到远程log server上,坚决不能只存储在本地;
设置密码安全策略,MD5之后再作为正式密码,32位长度的安全程度够高吧;
应用账号只赋予SELECT、UPDATE、INSERT权限,取消DELETE权限。把需要DELETE权限的逻辑改成用UPDATE实现,避免被物理删除;
需要真正删除时,交由DBA先备份后再物理删除;
-—-
https://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/
-—-
Monitor MySQL Performance
https://www.tecmint.com/mysql-performance-monitoring/
- Mytop
https://www.packtpub.com/mapt/book/application_development/9781783981601/2/ch02lvl1sec25/mytop
-
innotop
-
mysqlsla
https://www.packtpub.com/mapt/book/application_development/9781783981601/2/ch02lvl1sec27/mysqlsla
-
mysqladmin status
-
MySQL性能查询脚本
http://www.cnblogs.com/ivictor/p/5345217.html
==============SQL===============
SHOW GLOBAL VARIABLES where
Variable_Name in (
‘table_open_cache’,
‘table_definition_cache’,
‘sort_buffer_size’,
‘join_buffer_size’,
‘interactive_timeout’,
‘wait_timeout’,
‘tmp_table_size’,
‘max_heap_table_size’,
‘read_buffer_size’,
‘read_rnd_buffer_size’,
‘bulk_insert_buffer_size’,
‘lock_wait_timeout’,
‘innodb_thread_concurrency’,
‘innodb_sync_spin_loops’,
‘innodb_spin_wait_delay’,
‘transaction_isolation’,
‘innodb_additional_mem_pool_size’,
‘innodb_buffer_pool_size’,
‘innodb_buffer_pool_instances’,
‘innodb_buffer_pool_load_at_startup’,
‘innodb_buffer_pool_dump_at_shutdown’,
‘innodb_flush_log_at_trx_commit’,
‘innodb_log_buffer_size’,
‘innodb_log_file_size’,
‘innodb_log_files_in_group’,
‘innodb_write_io_threads’,
‘innodb_read_io_threads’,
‘innodb_purge_threads’,
‘innodb_open_files’,
‘innodb_max_dirty_pages_pct’,
‘innodb_flush_method’,
‘innodb_lru_scan_depth’,
‘innodb_checksum_algorithm’,
‘innodb_lock_wait_timeout’,
‘innodb_rollback_on_timeout’,
‘innodb_print_all_deadlocks’,
‘innodb_file_per_table’,
‘innodb_online_alter_log_max_size’,
‘innodb_status_file’,
‘innodb_status_output’,
‘innodb_status_output_locks’,
‘innodb_stats_on_metadata’,
‘performance_schema’,
‘performance_schema_instrument’,
‘key_buffer_size’,
‘max_allowed_packet’,
‘thread_stack’,
‘thread_cache_size’,
‘query_cache_type’,
‘query_cache_limit’,
‘query_cache_size’,
‘server-id’,
‘log_bin’,
‘sync_binlog’,
‘expire_logs_days’,
‘binlog_cache_size’,
‘max_binlog_cache_size’,
‘max_binlog_size’,
‘binlog_format’,
‘relay_log_recovery’,
‘relay-log-purge’
)