程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL優化設置裝備擺設文件my.ini(discuz服裝論壇t.vhao.net)

MySQL優化設置裝備擺設文件my.ini(discuz服裝論壇t.vhao.net)

編輯:MySQL綜合教程

MySQL優化設置裝備擺設文件my.ini(discuz服裝論壇t.vhao.net)。本站提示廣大學習愛好者:(MySQL優化設置裝備擺設文件my.ini(discuz服裝論壇t.vhao.net))文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL優化設置裝備擺設文件my.ini(discuz服裝論壇t.vhao.net)正文


在Apache, PHP, MySQL的系統架構中,MySQL關於機能的影響最年夜,也是症結的焦點部門。關於Discuz!服裝論壇t.vhao.net法式也是如斯,MySQL的設置能否公道優化,直接影響到服裝論壇t.vhao.net的速度和承載量!同時,MySQL也是優化難度最年夜的一個部門,不只須要懂得一些MySQL專業常識,同時還須要長時光的不雅察統計而且依據經歷停止斷定,然後設置公道的參數。 上面我們懂得一下MySQL優化的一些基本,MySQL的優化我分為兩個部門,一是辦事器物理硬件的優化,二是MySQL本身(my.cnf)的優化。
1、辦事器硬件對MySQL機能的影響
①磁盤尋道才能(磁盤I/O),以今朝高轉速SCSI硬盤(7200轉/秒)為例,這類硬盤實際上每秒尋道7200次,這是物理特征決議的,沒有方法轉變。MySQL每秒鐘都在停止年夜量、龐雜的查詢操作,對磁盤的讀寫量可想而知。所以,平日以為磁盤I/O是制約MySQL機能的最年夜身分之一,關於日均拜訪量在100萬PV以上的Discuz!服裝論壇t.vhao.net,因為磁盤I/O的制約,MySQL的機能會異常低下!處理這一制約身分可以斟酌以下幾種處理計劃: 應用RAID-0+1磁盤陣列,留意不要測驗考試應用RAID-5,MySQL在RAID-5磁盤陣列上的效力不會像你等待的那樣快。
②CPU 關於MySQL運用,推舉應用S.M.P.架構的多路對稱CPU,例如:可使用兩顆Intel Xeon 3.6GHz的CPU,如今我較推舉用4U的辦事器來專門做數據庫辦事器,不只僅是針關於mysql。
③物理內存關於一台應用MySQL的Database Server來講,辦事器內存建議不要小於2GB,推舉應用4GB以上的物理內存,不外內存關於如今的辦事器而言可以說是一個可以疏忽的成績,任務中碰到了高端辦事器根本上內存都跨越了16G。

2、MySQL本身身分當處理了上述辦事器硬件制約身分後,讓我們看看MySQL本身的優化是若何操作的。對MySQL本身的優化重要是對其設置裝備擺設文件my.cnf中的各項參數停止優化調劑。上面我們引見一些對機能影響較年夜的參數。 因為my.cnf文件的優化設置是與辦事器硬件設置裝備擺設互相關注的,因此我們指定一個設想的辦事器硬件情況:CPU: 2顆Intel Xeon 2.4GHz 內存: 4GB DDR 硬盤: SCSI 73GB(很罕見的2U辦事器)。

上面,我們依據以上硬件設置裝備擺設聯合一份曾經優化好的my.cnf停止解釋:
#vim /etc/my.cnf以下只列出my.cnf文件中[mysqld]段落中的內容,其他段落內容對MySQL運轉機能影響甚微,因此權且疏忽。
[mysqld]
port = 3306
serverid = 1
socket = /tmp/mysql.sock
skip-locking
#防止MySQL的內部鎖定,削減失足概率加強穩固性。
skip-name-resolve
#制止MySQL對內部銜接停止DNS解析,應用這一選項可以清除MySQL停止DNS解析的時光。但須要留意,假如開啟該選項,則一切長途主機銜接受權都要應用IP地址方法,不然MySQL將沒法正常處置銜接要求!
back_log = 384
#back_log參數的值指出在MySQL臨時停滯呼應新要求之前的短時光內若干個要求可以被存在客棧中。 假如體系在一個短時光內有許多銜接,則須要增年夜該參數的值,該參數值指定到來的TCP/IP銜接的偵聽隊列的年夜小。分歧的操作體系在這個隊列年夜小上有它本身的限制。 試圖設定back_log高於你的操作體系的限制將是有效的。默許值為50。關於Linux體系推舉設置為小於512的整數。
key_buffer_size = 256M
#key_buffer_size指定用於索引的緩沖區年夜小,增長它可獲得更好的索引處置機能。關於內存在4GB閣下的辦事器該參數可設置為256M或384M。留意:該參數值設置的過年夜反而會是辦事器全體效力下降!
max_allowed_packet = 4M
thread_stack = 256K
table_cache = 128K
sort_buffer_size = 6M
#查詢排序時所能應用的緩沖區年夜小。留意:該參數對應的分派內存是每銜接獨有,假如有100個銜接,那末現實分派的總共排序緩沖區年夜小為100 × 6 = 600MB。所以,關於內存在4GB閣下的辦事器推舉設置為6-8M。
read_buffer_size = 4M
#讀查詢操作所能應用的緩沖區年夜小。和sort_buffer_size一樣,該參數對應的分派內存也是每銜接獨享。
join_buffer_size = 8M
#結合查詢操作所能應用的緩沖區年夜小,和sort_buffer_size一樣,該參數對應的分派內存也是每銜接獨享。
myisam_sort_buffer_size = 64M
table_cache = 512
thread_cache_size = 64
query_cache_size = 64M
#指定MySQL查詢緩沖區的年夜小。可以經由過程在MySQL掌握台不雅察,假如Qcache_lowmem_prunes的值異常年夜,則注解常常湧現緩沖不敷的情形;假如Qcache_hits的值異常年夜,則注解查詢緩沖應用異常頻仍,假如該值較小反而會影響效力,那末可以斟酌不消查詢緩沖;Qcache_free_blocks,假如該值異常年夜,則注解緩沖區中碎片許多。
tmp_table_size = 256M
max_connections = 768
#指定MySQL許可的最年夜銜接過程數。假如在拜訪服裝論壇t.vhao.net時常常湧現Too Many Connections的毛病提 示,則須要增年夜該參數值。
max_connect_errors = 10000000
wait_timeout = 10
#指定一個要求的最年夜銜接時光,關於4GB閣下內存的辦事器可以設置為5-10。
thread_concurrency = 8
#該參數取值為辦事器邏輯CPU數目*2,在本例中,辦事器有2顆物理CPU,而每顆物理CPU又支撐H.T超線程,所以現實取值為4*2=8
skip-networking
#開啟該選項可以完全封閉MySQL的TCP/IP銜接方法,假如WEB辦事器是以長途銜接的方法拜訪MySQL數據庫辦事器則不要開啟該選項!不然將沒法正常銜接!
table_cache=1024
#物理內存越年夜,設置就越年夜.默許為2402,調到512-1024最好
innodb_additional_mem_pool_size=4M
#默許為2M
innodb_flush_log_at_trx_commit=1
#設置為0就是比及innodb_log_buffer_size排隊滿後再同一貯存,默許為1
innodb_log_buffer_size=2M
#默許為1M
innodb_thread_concurrency=8
#你的辦事器CPU有幾個就設置為幾,建議用默許普通為8
key_buffer_size=256M
#默許為218,調到128最好
tmp_table_size=64M
#默許為16M,調到64-256最掛
read_buffer_size=4M
#默許為64K
read_rnd_buffer_size=16M
#默許為256K
sort_buffer_size=32M
#默許為256K
thread_cache_size=120
#默許為60
query_cache_size=32M

※值得留意的是:
許多情形須要詳細情形詳細剖析
1、假如Key_reads太年夜,則應當把my.cnf中Key_buffer_size變年夜,堅持Key_reads/Key_read_requests至多1/100以上,越小越好。
2、假如Qcache_lowmem_prunes很年夜,就要增長Query_cache_size的值。

上面是其它網友的彌補:推舉參考

優化mysql數據庫機能的十個參數(轉)

(1)、max_connections:
許可的同時客戶的數目。增長該值增長 mysqld 請求的文件描寫符的數目。這個數字應當增長,不然,你將常常看到 too many connections 毛病。 默許數值是100,我把它改成1024 。

(2)、record_buffer:
每一個停止一個次序掃描的線程為其掃描的每張表分派這個年夜小的一個緩沖區。假如你做許多次序掃描,你能夠想要增長該值。默許數值是131072(128k),我把它改成16773120 (16m)

(3)、key_buffer_size:
索引塊是緩沖的而且被一切的線程同享。key_buffer_size是用於索引塊的緩沖區年夜小,增長它可獲得更利益理的索引(對一切讀和多重寫),到你能累贅得起那樣多。假如你使它太年夜,體系將開端換頁而且真的變慢了。默許數值是8388600(8m),我的mysql主機有2gb內存,所以我把它改成 402649088(400mb)。

4)、back_log:
請求 mysql 能有的銜接數目。當重要mysql線程在一個很短時光內獲得異常多的銜接要求,這就起感化,然後主線程花些時光(雖然很短)檢討銜接而且啟動一個新線程。
back_log 值指出在mysql臨時停滯答復新要求之前的短時光內若干個要求可以被存在客棧中。只要假如希冀在一個短時光內有許多銜接,你須要增長它,換句話說,這值對到來的tcp/ip銜接的偵聽隊列的年夜小。你的操作體系在這個隊列年夜小上有它本身的限制。試圖設定back_log高於你的操作體系的限制將是有效的。
當你不雅察你的主機過程列表,發明年夜量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null 的待銜接過程時,就要加年夜 back_log 的值了。默許數值是50,我把它改成500。

(5)、interactive_timeout:
辦事器在封閉它前在一個交互銜接上期待行為的秒數。一個交互的客戶被界說為對 mysql_real_connect()應用 client_interactive 選項的客戶。 默許數值是28800,我把它改成7200。


(6)、sort_buffer:
每一個須要停止排序的線程分派該年夜小的一個緩沖區。增長這值加快order by或group by操作。默許數值是2097144(2m),我把它改成 16777208 (16m)。

(7)、table_cache:
為一切線程翻開表的數目。增長該值能增長mysqld請求的文件描寫符的數目。mysql對每一個獨一翻開的表須要2個文件描寫符。默許數值是64,我把它改成512。

(8)、thread_cache_size:
可以復用的保留在中的線程的數目。假如有,新的線程從緩存中獲得,當斷開銜接的時刻假如有空間,客戶的線置在緩存中。假如有許多新的線程,為了進步機能可以這個變量值。經由過程比擬 connections 和 threads_created 狀況的變量,可以看到這個變量的感化。我把它設置為 80。

(9)mysql的搜刮功效
用mysql停止搜刮,目標是能不分年夜小寫,又能用中文停止搜刮
只需起動mysqld時指定 --default-character-set=gb2312

(10)、wait_timeout:
辦事器在封閉它之前在一個銜接上期待行為的秒數。 默許數值是28800,我把它改成7200。


2G內存,針對站多,抗壓型的設置,最好:

table_cache=1024 物理內存越年夜,設置就越年夜.默許為2402,調到512-1024最好
innodb_additional_mem_pool_size=4M 默許為2M
innodb_flush_log_at_trx_commit=1
(設置為0就是比及innodb_log_buffer_size排隊滿後再同一貯存,默許為1)
innodb_log_buffer_size=2M 默許為1M
innodb_thread_concurrency=8 你的辦事器CPU有幾個就設置為幾,建議用默許普通為8
key_buffer_size=256M 默許為218 調到128最好
tmp_table_size=64M 默許為16M 調到64-256最掛
read_buffer_size=4M 默許為64K
read_rnd_buffer_size=16M 默許為256K
sort_buffer_size=32M 默許為256K
max_connections=1024 默許為1210
thread_cache_size=120 默許為60
query_cache_size=64M


普通:
table_cache=512
innodb_additional_mem_pool_size=8M
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=4M
innodb_thread_concurrency=8
key_buffer_size=128M
tmp_table_size=128M
read_buffer_size=4M
read_rnd_buffer_size=16M
sort_buffer_size=32M
max_connections=1024

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved