mysql配置講解

咱們來看一下mysql的配置,mysql的配置文件咱們把它放在了/etc/my.cnf,那咱們核心部分是[mysqld]php

[mysqld]mysql

port            = 3306          它的端口portsql

socket          = /tmp/mysql.sock     監聽的socketshell

skip-locking      是否要過濾掉這個lock,緩存

key_buffer_size = 256M 很關鍵的內存設置,主要用來索引塊的緩衝的,增長它能夠增長出來索引的速度,那好比說對於全部的讀 ,多重的寫,那這個數值並非越大越好,它也有必定的範圍,那好比說咱們1G的內存,你給它搞成256M就足夠了,固然也是根據具體用的狀況來劃分適合的大小,那麼怎麼去劃分適合的大小呢,就是mysql的調優,怎麼樣去調這個內存的大小(5758的帖子)socket

max_allowed_packet = 1M  容許最大的包,那這個用在什麼狀況下呢,每每用在mysql的一個WEB管理工具叫作phpmyadmin,咱們能夠再那個上面去導入一些包,一些文件ide


table_open_cache = 256它表示全部的線程,打開表的數量工具

sort_buffer_size = 1M 用來排序的緩衝區大小,那咱們這個mysql它搜素語句裏面會有一些排序,就像咱們shell去排序數字隊列的順序同樣,那他排序的時候佔用多大內存呢1M就夠了,固然也根據你具體用的,固然這是針對於一個線程來講的,一個線程獨佔這一個buffer_sizespa

read_buffer_size = 1M  讀的時候有一個緩衝區線程

read_rnd_buffer_size = 4M 這個是讀隨機的

myisam_sort_buffer_size = 64M  這個是針對myisam這個引擎來講的,其實咱們mysql經常使用的引擎有兩種,一種是myisam,一個是inodb

thread_cache_size = 8他表示緩存可重用的線程數,那這個跟我們CPU的核數有關係通常你的CPU呢是幾核那麼這個寫成幾就能夠了

query_cache_size= 16M 這個是查詢的緩存大小,我們去查詢的一個搜索語句確定會出來一些結果,那我能夠把咱們的結果暫存在內存裏,下次再查直接拿出來就是了,這個就是存放那一部分查詢結果的

thread_concurrency = 8  這個也是跟CPU的核數有關係,他呢就是最大迸發線程數,通常是邏輯CUP的數量*2,好比你是4核*2=8 那你能夠把他寫成8

#innodb_log_file_size = 64M

#innodb_log_buffer_size = 8M

#innodb_flush_log_at_trx_commit = 1

#innodb_lock_wait_timeout = 50

這個是innodb相關的了,假如用innodb那就去配置一下,那還有一些可能會用到的

log-bin=mysql-bin 配置它的二進制日誌的,後面mysql主從複製的時候會打開這個配置

interactive_timeout=8

wait_timeout=8  這兩個配置每每是一塊配置才能生效的,這個數值依賴上面的數值咱們會去設置一個wait_timeout由於客戶端過來查詢的mysql它可能會有一些sleep的狀態,當他鏈接處理完以後,它不會立馬斷開,他會先暫時保持鏈接,可是mysql是有鏈接數限制的它不能超過多少若是超過了這個鏈接數他就會連不上,因此說咱們有必要把已經完成的鏈接數自動的讓她斷開鏈接,因此wait_timeout這個參數仍是挺有用的

long_querytime=1 關於慢查詢的好比說我超過1秒就要去記錄這個日誌,而後記錄日誌的路徑

log_slow_queries=/data/mysql/slow.log 這個是很是有用的,由於咱們去作調優的時候這個參考依據,咱們每每根據慢查詢的日誌進行判斷

相關文章
相關標籤/搜索