MySQL 配置文件my.cnf參數優化詳解

前言: mysql參數優化對於新手來說,是比較難懂的東西,其實這個參數優化是個很複雜的東西,對於不一樣的網站,及其在線量,訪問量,帖子數量,網絡狀況,以及機器硬件配置都有關係,mysql

優化不可能一次性完成,須要不斷地觀察以及調試,纔有可能獲得最佳效果。sql

參考博客:https://blog.csdn.net/xuxile/article/details/53410562數據庫

                  http://www.jb51.net/article/48082.htm緩存

打開  # vi /etc/my.cnf  網絡

[client]                                                                       #客戶端session

port = 3306                                                                #數據庫端口 3306數據結構

socket = /tmp/mysql.sock                                         #mysql套接字,多實例下用socket鏈接併發

 

[mysql]socket

default-character-set = utf-8                                   #字符集測試

 

[mysqld]

port = 3306

socket = /tmp/mysql.sock

character_set_server = utf-8

#file

basedir = /usr/local/mysql                                    #mysql安裝目錄

datadir = /data/mysql                                            #數據文件路徑

pid-file = /data/mysql/mysql.pid                            #mysql進程

log_error = /data/mysql/log/mysql.err                       #mysql 錯誤日誌路徑

#skip-grant-tables                                                #忘記root密碼時,可經過--skip-grant--tables啓動後鏈接mysql並重置密碼

slow_query_log = 1                                              #開啓慢查詢日誌

slow_query_log_file =  /data/mysql/log/slowq.log   #慢查詢日誌路徑

long_query_time = 1                                            #慢查詢時間1秒

 

#temp

max_tmp_tables = 64                                          #打開臨時表的最大數量

max_heap_table_size = 1G                               #建立內存表的大小

tmp_table_size = 512M                                     #內存臨時表的最大值

slave_load_tmpdir = /data/mysql/log                #slave 臨時目錄路徑

tmpdir = /data/mysql/log                                   #臨時目錄路徑

 

#session

back_log = 8192                                            #mysql 中止新請求前表示有多少請求能夠暫時堆棧

skip-name-resolve                                        #跳過反向解析

max_allowed_packet = 32M                         #客戶端接收最大字節會話值

max_connections = 16000                          #最大鏈接數

max_connect_errors  =  10000                   #最大錯誤鏈接數,滿了須要經過flush hosts 來清除

wait_timeout  =  28800                                #等待超時時間

binlog_cache_size = 1M                             #binlog緩存大小

 

table_open_cache = 1024                           #表緩衝區大小

thread_concurrency = 4                              #線程併發數

thread_cache_size = 128                           #線程緩衝區大小

thread_handling  =  pool-of-threads            #開啓線程池

thread_pool_high_prio_mode = none         #新的鏈接根據thread_pool_high_prio_mode分出優先級

thread_pool_idle_timeout = 28800             #閒置線程超時時間

thread_pool_oversubscribe = 20               #支持運行的最大任務數

#max_statement_time = 5000                  #控制查詢在mysql的最長執行時間,單位毫秒

 

query_cache_type = 0                                 #查詢緩衝區是否開啓 0:關閉  1:開啓 2:demand
query_cache_size = 0                                 #查詢緩衝區大小
key_buffer_size = 128M                               #索引緩衝區大小
myisam_sort_buffer_size = 16M                        #MyISAM排序緩衝大小
read_buffer_size = 8M                                #順序讀緩區衝大小
read_rnd_buffer_size = 4M                            #隨機讀緩衝區大小
sort_buffer_size = 16M                               #排序緩衝區大小
join_buffer_size = 16M                               #join緩衝區大小

 

# innodb
default_storage_engine = InnoDB                      #默認存儲引擎
innodb_data_home_dir = /data/mysql/log                       #innodb存儲引擎共享表空間路徑,即:ibdata
innodb_data_file_path = ibdata1:256M:autoextend      #innodb存儲引擎大小,自增
innodb_log_group_home_dir = /data/mysql/log                  #ib_logfile日誌路徑
innodb_log_files_in_group = 2                        #ib_logfile兩組,每組兩個
innodb_log_file_size = 512M                          #ib_logfile大小
innodb_log_buffer_size = 8M                          #日誌緩衝區大小
innodb_flush_log_at_trx_commit = 2                   #等於2時,不寫硬盤而是寫入系統緩存,日誌仍會每秒寫到硬盤
innodb_flush_method = O_DIRECT                       #向文件寫入數據,只有數據寫到了磁盤,寫入操做完成(write返回成功)
innodb_lock_wait_timeout = 50                        #innodb引擎鎖等待超時時間
#innodb_thread_concurrency = 16                      #innodb線程併發數
innodb_buffer_pool_size = 44G                        #innodb存儲引擎緩衝區大小
innodb_additional_mem_pool_size = 20M                #用來設置 InnoDB 存儲的數據目錄信息和其它內部數據結構的內存池大小
innodb_io_capacity = 1500                            #控制Innodb checkpoint時的IO能力
innodb_use_native_aio = 1                            #控制是否啓用Native AIO,默認開啓。官方的測試顯示,啓用Native AIO,恢復速度能夠提升75%
innodb_file_per_table = 1                            #innodb引擎使用獨立的表空間
innodb_open_files = 3000                             #innodb打開文件數
innodb_print_all_deadlocks = 1                       #在error中打印鎖信息

 

# others
memlock = 1                                          #MySQL是否使用交換分區


# replication
server-id = 1137                                     #server-id 搭建主從時必須配置且惟一
log-bin = /data/mysql/log/mysql-bin                          #二進制日誌文件路徑
#binlog-ignore-db=mysql                              #過濾mysql庫的二進制日誌
binlog_format = mixed                                #二進制日誌模式    分三種,分別爲:row,statement,mixed
expire_logs_days = 7                                 #刪除過時日誌時間
relay_log = /data/mysql/log/relay-bin                        #relay-log文件路徑
#replicate_ignore_db = mysql                         #複製過濾MySQL庫
#slave_skip_errors = 1062                            #主從同步出現問題,從庫忽略全部類型爲1062的錯誤
log_slave_updates = 1                                #級聯複製使用的參數,爲知足M-S-S
skip-slave-start                                     #Slave不會隨MySQL的啓動而啓動
#read_only = 1                                       #只讀
sync_binlog = 1                                      #將binlog_cache中的數據強制寫入磁盤


[mysqldump]
default-character-set = utf8                         #數據庫字符集

相關文章
相關標籤/搜索