mysql 安裝好後,咱們是從安裝包的 support-files 裏面複製過來一個模板配置文件,默
認 mysql 配置文件是在/etc/my.cnf 下,其實這個路徑或者文件名字咱們是能夠修改的,在啓
動腳本中修改。下面一些經常使用的配置。mysql
mysql配置文件在sql
vim /etc/my.cnf
核心配置是mysqldvim
port = 3306 指定 MsSQL 監聽的端口
socket = /tmp/mysql.sock 爲 MySQL 客戶程序與服務器之間的本地通訊指定一個套接字文件(Linux 下默認是/var/lib/mysql/mysql.sock 文件)
skip-locking
跳過鎖定
key_buffer_size = 256M
用於索引塊的緩衝區大小,增長它可獲得更好處理的索引(對全部讀和多重寫)。索引被全部的線程共享,key_buffer 的大小視內存大小而定。
max_allowed_packet = 1M
接受的數據包大小; 增長該變量的值十分安全, 這是由於僅當須要時纔會分配額外內存。例如,僅當你發出長查詢或 MySQLd 必須返回大的結果行時 MySQLd 纔會分配更多內存。 該變量之因此取較小默認值是一種預防措施,以捕獲客戶端和服務器之間的錯誤信息包,並確保不會因偶然使用大的信息包而致使內存溢出。
table_open_cache = 256 簡單說就是:線程,打開表的數量 MySQL 每打開一個表,都會讀入一些數據到 table_open_cache 緩存中,當 MySQL 在這個緩存中找不到相應信息時, 纔會去磁盤上讀取。 默認值 64, 假定系統有 200 個併發鏈接,則需將此參數設置爲 200*N(N 爲每一個鏈接所需的文件描述符數目);當把 table_open_cache設置爲很大時, 若是系統處理不了那麼多文件描述符, 那麼就會出現客戶端失效, 鏈接不上.
sort_buffer_size = 1M
MySQL 執行排序使用的緩衝大小。單個線程排序佔用1M內存
若是想要增長 ORDER BY 的速度,首先看是否可讓 MySQL 使用索引而不是額外的排序階段。若是不能,能夠嘗試增長 sort_buffer_size 變量的大小
read_buffer_size = 1M
讀查詢操做所能使用的緩衝區大小。
和 sort_buffer_size 同樣, 該參數對應的分配內存也是每鏈接獨享。對錶進行順序掃描的請求將分配一個讀入緩衝區,MySQL 會爲它分配一37段內存緩衝區。 若是對錶的順序掃描請求很是頻繁,而且你認爲頻繁掃描進行得太慢,能夠經過增長該變量值以及內存緩衝區大小提升其性能.
read_rnd_buffer_size = 4M
隨機讀緩衝區大小。
當按任意順序讀取行時(例如,按照排序順序),將分配一個隨機讀緩存區。進行排序查詢時,MySQL 會首先掃描一遍該緩衝,以免磁盤搜索,提升查詢速度,若是須要排序大量數據,可適當調高該值。但 MySQL 會爲每一個客戶鏈接發放該緩衝空間,因此應儘可能適當設置該值,以免內存開銷過大
myisam_sort_buffer_size = 64M
MyISAM 表發生變化時從新排序所需的緩衝
thread_cache_size = 8 該值表示能夠從新利用保存在緩存中線程的數量, 當斷開鏈接時若緩存中還有空間,那麼客戶端的線程將被放到緩存中,若是線程從新被請求,那麼請求將從緩存中讀取,若果緩存中是空的或者是新的請求,那麼線程將被從新建立。設置規律爲:1G 內存設置爲 8,2G內存設置爲 16,4G 以上設置爲 64
query_cache_size= 16M
指定 MySQL 查詢結果緩衝區的大小
thread_concurrency = 8 最大併發線程數,取值爲服務器邏輯 CPU 數量×2
添加緩存
interactive_timeout = 8 wait_timeout = 8
表示空閒的鏈接超時時間,默認是 28800s,這個兩個參數一塊兒使用,也就是說要想讓 wait_timeout 生效,必須同時設置 interactive_timeout
long_query_time = 1 log_slow_queries = /data/mysql/slow.log
慢查詢超過1秒生成日誌安全
慢查詢日誌的路徑服務器