my-innodb-heavy-4G.cnf 配置文件参数介绍
my-innodb-heavy-4G.cnf [client]#客戶端配置 port =3306? #客戶端端口號 socket =/application/mysql-5.5.49/tmp/mysql.sock ? default-character-set= utf8 ? #客戶端字符集(控制character_set_client、character_set_connection、character_set_results)
服務端配置
[mysqld] port =3306? MySQL服務運行時的端口號 ? socket =/application/mysql-5.5.49/tmp/mysql.sock? socket文件是在Linux/Unix環境下特有的,用戶在Linux/Unix環境下客戶端連接可以不通過TCP/IP網絡而直接使用unix。 ?socket連接mysql? back_log =50 #back_log參數是值,支出在MySQL暫時停止響應新請求之前,短時間內的多少個請求可以被存在堆棧中,如果系統在短時間內有很多連接,則需要增加該參數的值,該參數值指定到來的TCP/IP連接的監聽隊列的大小。不同的操作系統在這個隊列的大小上有自己的限制。如果試圖將back_log設置高于操作系統的限制將是無效的,其默認值為50.對于Linux系統而言,推薦設置小于512的整數 max_connect_errors =10 ?? #max_connect_errors設置每個主機的連接請求異常中斷的最大次數,當超過該次數,MySQL服務器將禁止host的連接請求,直到MySQL服務器重啟或通過flush hosts命令清空此host的相關信息? table_cache =4096 ??#table_cache給經常訪問的表分配的內存,物理內存越大,設置就越大。調大這個值,一般情況下可以降低磁盤IO,但相應的會占用更多的內存,這里設置為614???? table_open_cache =2048 ?#table_open_cache設置表告訴緩存的數目。每個連接進行,都會至少打開一個表緩存。因此,table_cache的大小英語max_connections的設置有關。例如,對于200個并行運行的連接,應該讓表的緩存至少有200xN,這里N是應用可以執行的查詢的一個聯接種表的最大數量,此外還需要為臨時表和文件保留一些額外的文件描述符??? binlog_cache_size =1M? ??#binlog_cache_size在一個事務中binlog為了記錄sql狀態所持有的cache大小,如果你經常使用大的,多聲明的事務,可以增加此值來獲取更大的性能,所有從事務來的狀態都被緩沖在binlog緩沖中,然后再提交后一次性寫入到binlog中,如果事務比此值大,會使用磁盤上的臨時文件來替代,此緩沖在每個鏈接的事務第一次更新狀態時被創建? max_heap_table_size =64M? #獨立的內存表所允許的最大容量 read_buffer_size =2M ? ?#read_buffer_size讀查詢操作所能使用的緩沖區大小,和sort_buffer_size一樣,該參數對應的分配內存也是每個鏈接獨享?? read_rnd_buffer_size =16M ? ?????#read_rnd_buffer_size設置進行隨機讀的時候使用的緩沖區。此參數和read_buffer_size所設置的Buffer相反,一個是順序讀的時候使用,一個是隨機讀的時候使用。但是兩者都是針對線程的設置,每個線程都可以產生兩種Buffer中的任何一個。默認值是256KB,最大值4GB sort_buffer_size =8M #設置查詢排序時所能使用的緩沖區大小,系統默認大小為8MB 注意:該參數對應的分配內存是每個連接獨占的,如果有100個鏈接,那么實際分配的總排序緩沖區大小為100*6=600MB,所以對于在4GB左右的服務器來說,推薦將其設置為6MB~8MB join_buffer_size =8M #聯合查詢操作所能使用的緩沖區大小,和sort_buffer_size一樣,該參數對應的分配內存也是每個連接獨享 thread_cache_size =8 #設置Thread Cache池中可以緩存的連接線程最大數量,可設置0~16384,默認為8,這個值表示可以重新利用保存在緩存中線程的數量,當斷開連接時如果緩存中還有空間,那么客戶端的線程江北放到緩存中;如果線程重新被請求,那么請從緩存中讀取,如果緩存中是空的或者是新的請求,那么這個線程將被重新創建,如果有很多線程,增加這個值可以改善系統性能。通過比較Connections和Threads_created狀態的變量,可以看到這個變量的作用。1GB內存我們配置為8,2GB內存我們配置為16,3GB內存我們配置32,4GB或4GB以上我們給此值為64或更大的值 thread_concurrency =8 #該參數取值為服務器邏輯CPU數量x2,在本例中,服務器有兩個物理CPU,而每個物理CPU又支持H.T超線程,所以實際取值為4 x 2 = 8.這也是雙核主流服務器的配置 query_cache_size =64M #指定MySQL查詢緩沖區的大小,可以通過MySQL控制臺觀察,如果Qcache_lowmem_prunes的值非常大,則表明經常出現緩沖區不夠的情況,如果Qcache_hits的值非常大,則表明查詢緩沖區使用得非常頻繁。另外如果改值較小反而會影響效率,那么可以考慮不用查詢緩沖,對于Qcache_free_blocks,如果該值非常大,則表明緩沖區中碎片很多。 query_cache_limit =2M #只有小于此設置值的結果才會被緩存 query_cache_min_res_unit =2k? #設置查詢緩存分配內存的最小單位,要適當第設置此參數,可以做到為減少內存快的申請和分配次數,但是設置過大可能導致內存碎片數值上升。默認值為2K,建議設置為1K~16K ft_min_word_len =4 #如果是英文默認值是比較合理的,但是中文絕大部分都是2個字符,這就導致小于4個字的詞不能被索引,全文索引功能就形同虛設了 default-storage-engine = MYISAM #如果在創建表的語句中沒有指定,當創建一個新表時所使用的默認表類型 thread_stack =192K #設置MySQL每個線程的堆棧大小,默認值足夠大,可滿足普通操作。可設置范圍為128KB至4GB,默認為192kb transaction_isolation = REPEATABLE-READ #數據庫隔離級別 READ UNCOMMITTED=讀取未提交內容 READ COMMITTED=讀取提交內容 REPEATABLE READ=可重讀 SERIALIZABLE=可串行化 tmp_table_size =64M #設置內存臨時表最大字號,如果超過該值,則會將臨時表寫入磁盤,其范圍1kb指4GB log-bin=mysql-bin binlog_format=mixed #表示開啟binlog日志 slow_query_log #記錄慢查詢,慢查詢是指消耗超過“long_query_time”中定義的總時間的查詢,如果“ log_short_format”沒有啟用,不使用索引的查詢。 long_query_time =2 #記錄慢查詢的時間,所有超過該時間的查詢都將被視為緩慢的。 server-id =1 #1到32之間的唯一服務器標識號,如果是主從或多實例ID號不能相同 key_buffer_size =32M #指定用于索引的緩沖區大小,增加它可以得到更好的索引處理性能。對于內存在4GB左右的服務器來說,此參數可以設置256MGB或384MB bulk_insert_buffer_size =64M #如果經常性的需要使用批量插入的特殊語語句來插入數據,可以適當調整參數至16MB~32MB,建議8M,設置0則禁用該優化 myisam_sort_buffer_size =128M #當MySQL需要REPAIR、OPTIMEIZE、ALTER表語句重建索引,以及LOAD DATA INFILE到一個空表時,該緩沖區被分配??稍O置范圍48tytes至4GB myisam_max_sort_file_size =10G #當重新建索引(REPAIR,ALTER,TABLE,或者LOAD,DATA,TNFILE)時,MySQL被允許使用臨時文件的最大值。 myisam_repair_threads =1 #如果一個表擁有超過一個索引,MyISAM可以通過并行排序使用超過一個線程去修復 myisam_recover #自動檢查和修復沒有正確關閉的MyISAM表 innodb_file_io_threads = 4 #InnoDB中的文件I/O線程,通常設置為4。如果是windows可以設置更大的值以提高磁盤I/O innodb_additional_mem_pool_size =16M #用來設置InnoDB存儲的數據目錄信息和其他內部數據結構的內存池大小,應用程序里的表越多,你需要在這里分配越多的內存。對于一個相對穩定的應用,這個參數的大小也是相對應的。如果InnoDB用光了這個池內的內存,InnoDB開始從操作系統分配內存,并且往MySQL錯誤日志寫警告信息。當發現錯誤日志中已經有相關的警告信息時,就應該適當的增加該參數的大小。 innodb_buffer_pool_size =2G #InnoDB使用一個緩沖池來保存索引和原始數據,設置越大,在存取里面數據時需要的磁盤I/O越少。強烈建議不要講InnoDB的buffer pool值配置為物理內存的50%-80%,應根據具體環境而定。 innodb_data_file_path = ibdata1:10M:autoextend #設置配置一個可擴展大小的尺寸為10M的單獨未見,名為ibdata1沒有給出文件的位置,所以默認是在MySQL的數據目錄內,還可以自己制定數量,autoextend代表自增 innodb_write_io_threads =8 #此處代表MySQL Innodb對I/O讀寫線程的支持,配太多也沒用,因為IO能力有限,需要配合特殊機型 innodb_read_io_threads =8 #在MySQL5.1.x版本中使用參數:innodb_file_io_threads:作用后臺線程處理數據頁上的讀寫IO請求數量;而在MySQL5.5.x中用innodb_read_io_threads和Innodb_write_io_threads取代此版本之前參數,該參
數值之和=2*cpu個數*cpu核數;如果你的系統讀>寫,可以設置innodb_read_io_threads值相對大點;反之,也可以. innodb_thread_concurrency =16 #InnoDB內核里面允許線程數量,最佳的高度取決于應用程序、硬件以及操作系統的調讀屬性。太高的值可能導致線程顛簸。 innodb_flush_log_at_trx_commit =1 #如果設置為1,InnoDB在每次提交(提供完整的 ACID行為)時刷新事務到磁盤。 如果你想安全地進行折中,并且你正在運行小事務,你可以為0或者2來減少日志的磁盤I/O。 值0代表只被寫入到日志文件,并且日志文件大約每1秒刷新到磁盤 值2代表日志在每次提交時被寫入到日志,但是日志文件知識大約每秒一次刷新到磁盤 innodb_log_buffer_size =8M #InnoDB緩沖日志數據所使用的緩沖區大小,一旦它滿了,InnoDB將它刷新到磁盤。 innodb_log_file_size =256M #一個日志組中每個日志文件的大小,你可以設置日志的聯合大小為你緩沖池大小的25%-100%,以避免對日志文件不必要的緩沖池動態刷新重寫 innodb_log_files_in_group =3 #日志組中文件的總數,通常值為2-3就已足夠 innodb_max_dirty_pages_pct =90 #InnoDB緩沖池中允許的臟頁面的最大百分比,如果它達到了,InnoDB將開始積極清理,以免消耗完所有的干凈頁面,這是一個軟限制,不保證能夠一直保持。 innodb_lock_wait_timeout =120 #InnoDB事務被回滾之前可以等待一個鎖定的超時描述,InnoDB在它自己的鎖定表中自動檢測事務死鎖并且回滾事務。InnoDB用local tables語句注意到鎖表設置 [mysqldump] quick max_allowed_packet =16M #設定在網絡傳輸中一次消息量的最大值,最大值是1GB,必須設置為1024的倍數,單位為字節。 [mysql] no-auto-rehash #只允許使用鍵值的updates和delete [myisamchk] key_buffer_size =512M #指定用于索引的緩沖區大小,增加它可以更好的索引處理性能,對于內存4GB左右的服務器來說,該參數可以設置為256MB或384MB sort_buffer_size =512M #設置查詢排序時所能使用的緩沖區大小。 注意:該參數對應的分配內存是每個連接獨占的,如果有100個鏈接,那么實際上分配的總排序緩沖區大小為100×6=600MB,所以對于在4GB左右的服務器來說推薦將其設置6MB~8MB read_buffer = 8M write_buffer = 8M [mysqlhotcopy] interactive-timeout [mysqld_safe] open-files-limit =8192 #增加每次處理所允許打開的文件數量,確保你已經設置全局系統限制足夠高。對于一個大數量的打開表,高值是必須的
值得注意: 強烈建議不要武斷地將InnoDB的Buffer Pool值配置為物理內存的50%~80%,應根據具體環境而定。
如果key_reads太大,則應該把my.cnf中的key_buffer_size變大,保持key_reads/key_read_re-quests至少在1/100以上,越小越好。
如果qcache_lowmem_prunes很大,就要增加query_cache_size的值。
具體參數需要根據業務進行設置,請操作前進行備份!
電商MySQL數據庫配置文件
這是一份電子商務網站MySQL數據庫調整后所運行的配置文件/etc/my.cnf(服務器為DELL R710、16GB內存、RAID10),大家可以根據實際的MySQL數據庫硬件情況進行調整配置文件如下:[client]
port ? = 3306
socket ? = /data/3306/mysql.sock
default-character-set?= utf8
?
[mysqld]
user??? = mysql
port??? = 3306
character-set-server?= utf8
socket? = /data/3306/mysql.sock
basedir?= /application/mysql
datadir?= /data/3306/data
log-error=/data/3306/mysql_err.log
pid-file=/data/3306/mysql.pid
?
log_slave_updates?= 1
log-bin?= /data/3306/mysql-bin
binlog_format?= mixed
binlog_cache_size?= 4M
max_binlog_cache_size?= 8M
max_binlog_size?= 1G
expire_logs_days?= 90
binlog-ignore?– db = mysql
binlog-ignore?– db = information_schema
?
key_buffer_size?= 384M
sort_buffer_size?= 2M
read_buffer_size?= 2M
read_rnd_buffer_size?= 16M
join_buffer_size?= 2M
thread_cache_size?= 8
query_cache_size?= 32M
query_cache_limit?= 2M
query_cache_min_res_unit?= 2k
thread_concurrency?= 32
?
table_cache?= 614
table_open_cache?= 512
open_files_limit??? = 10240
back_log?= 600
max_connections?= 5000
max_connect_errors?= 6000
external-locking?= FALSE
?
max_allowed_packet?=16M
thread_stack?= 192K
transaction_isolation?= READ-COMMITTED
tmp_table_size?= 256M
max_heap_table_size?= 512M
?
bulk_insert_buffer_size?= 64M
myisam_sort_buffer_size?= 64M
myisam_max_sort_file_size?= 10G
myisam_repair_threads?= 1
myisam_recover
?
long_query_time?= 2
slow_query_log
slow_query_log_file?= /data/3306/slow.log
skip-name-resolv
skip-locking
skip-networking
server-id?= 1
?
innodb_additional_mem_pool_size?= 16M
innodb_buffer_pool_size?= 512M
innodb_data_file_path?= ibdata1:256M:autoextend
innodb_file_io_threads?= 4
innodb_thread_concurrency?= 8
innodb_flush_log_at_trx_commit?= 2
innodb_log_buffer_size?= 16M
innodb_log_file_size?= 128M
innodb_log_files_in_group?= 3
innodb_max_dirty_pages_pct?= 90
innodb_lock_wait_timeout?= 120
innodb_file_per_table?= 0
?
[mysqldump]
quick
max_allowed_packet?= 64M
?
[mysql]
no –?auto – rehash
來源:?http://www.xuliangwei.com/xubusi/213.html 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的my-innodb-heavy-4G.cnf 配置文件参数介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度地图相关问题总结
- 下一篇: APP重复点击,出现多次同样的响应