mysql參數及解釋

來源:互聯網
上載者:User

標籤:os   使用   io   for   檔案   ar   資料   art   問題   

key_buffer_size: #*** MyISAM 特有的選項。即使你不使用 MyISAM 表,你仍應該將它設定為 8-64M,因為它也被用於內部的臨時磁碟表。這個參數是用來設定索引塊(index blocks)緩衝的大小,它被所有線程共用,嚴格說是它決定了資料庫索引處理的速度,尤其是索引讀的速度。

 

max_allowed_packet: #**通用配置選項,能夠處理的最大通訊資訊包大小,在用戶端或者伺服器端都可以設定。

 

table_open_cache #**通用配置選項,參數設定表快取的數目。每個串連進來,都會至少開啟一個表緩衝。因此, table_cache 的大小應與 max_connections 的設定有關。例如,對於 200 個並行啟動並執行串連,應該讓表的緩衝至少有 200 × N ,這裡 N 是應用可以執行的查詢的一個聯結中表的最大數量。此外,還需要為暫存資料表和檔案保留一些額外的檔案描述符。MySQL Open_tables表示開啟表的數量,如果MySQL Opened_tables數量過大,說明配置中table_cache(5.1.3之後這個值叫做table_open_cache)值可能太小

 

Sort_Buffer_Size#**通用配置

,是一個connection級參數,在每個connection第一次需要使用這個buffer的時候,一次性分配設定的記憶體

 

net_buffer_length,用於建立串連時的串連緩衝和結果緩衝。最小值是1K,最大值是1M(可以加快mysqldump的匯入匯出速度)

 

read_buffer_size #*** MyISAM 特有的選項,用於進行 MyISAM 表全表掃描的緩衝區大小。,如果全表掃描是需要的,將分配給每個線程。

 

read_rnd_buffer_size#*** MyISAM 特有的選項, 當在一個有序的排序中讀取行時,可以通過該緩衝區來讀取行,以避免對磁碟的尋找。如果將該值設定為一個很高的值,你可以大幅度提高 ORDER BY 的效能。當需要時,分配給每個線程。

 

myisam_sort_buffer_size#*** MyISAM 特有的選項, MySQL 需要通過 REPAIROPTIMIZEALTER 表語句重建索引,以及 LOAD DATA INFILE 到一個空表時,該緩衝區被分配。它是給每個線程分配的,因此小心比較大的設定

 

log-bin#**通用配置選項啟用二進位日誌。這在一個複製配置中,對於充當 MASTER 的是必要的。如果你需要有能力及時從你最後的備份點中進行恢複,你也需要二進位日誌。

 

binlog_format#**通用配置選項,推薦的二進位日誌格式

 

binlog_cache_size#**通用配置選項,在一個事務中能夠為二進位日誌 SQL 語句保持的緩衝大小。如果你經常使用大的、多語句的事務,你可以提高該值以獲得更好的效能。來自事務的所有語句被緩衝到二進位日誌緩衝,並在 COMMIT 之後立即被寫入到二進位日誌中。如果事務大於該值,磁碟上的臨時檔案將被替代使用。該緩衝在事務中第一個更新語句時分配給每個串連

 

max_connections #**通用配置選項, MySQL 允許的並發會話的最大數量。其中的一個串連將被保留給擁有 SUPER 特權的使用者,即使已經到達了串連限制,仍可以允許管理者登入。

 

max_connect_errors#**通用配置選項, 每個主機允許的最大錯誤數量。如果已到達該限制,主機將阻止對 MySQL 伺服器的串連,直到運行“FLUSH HOSTS”或者伺服器被重啟。在串連階段的無效密碼和其它錯誤將導致該值被提高。請看全域計數器的“Aborted_connects”狀態變數。

 

log-bin-trust-function-creators#**通用配置選項,二進位日誌開啟時有效,該參數決定儲存函數建立者是否可以建立會導致不安全的時間記錄到二進位日誌的儲存函數。當為0,此時這也是預設值,除了擁有super許可權除了create routinealter routine許可權.同時也會強制函數必須和deterministicreads sql data又或者no sql的字元集一致.當設為1MySQL不會去限制這些,這個變數同樣作用於觸發器

 

slow_query_log #**通用配置選項,記錄慢查詢。慢查詢是指消耗時間超過“long_query_time”中定義的總時間的查詢,或者如果 log_short_format 沒有啟用,不使用索引的查詢。如果你頻繁地添加新查詢到系統中,開啟這個是一個比較好的注意。

 

slow_query_log_file #**通用配置選項,用於指定慢查詢日誌的檔案路徑和檔案名稱

 

long_query_time #**通用配置選項,所有消耗時間超過該總時間的查詢都將被視為是緩慢的。不要在這裡使用“1”值,因為這會導致甚至非常快的查詢都會被不時地被記錄(MySQL 當前的度量時間只精確到秒)。

 

log-queries-not-using-indexes#**通用配置選項,用於把所有沒有使用索引的查詢也記錄到慢查詢日誌中

 

transaction_isolation#**通用配置選項, 設定預設的事務隔離等級。可用的層級有:READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLE

 

query_cache_size #**通用配置選項,指定MySQL查詢緩衝區的大小。可以通過在MySQL控制台執行以下命令觀察: # > SHOW VARIABLES LIKE ‘%query_cache%‘;
         # > SHOW STATUS LIKE ‘cache%‘;

如果cache_lowmem_prunes的值非常大,則表明經常出現緩衝不夠的情況;
如果cache_hits的值非常大,則表明查詢緩衝使用非常頻繁,如果該值較小反而會影響效率,那麼可以考慮不用查詢緩衝;cache_free_blocks,如果該值非常大,則表明緩衝區中片段很多。

 

query_cache_limit#**通用配置選項,只緩衝結果集是小於該限制的。這可以保護一個非常大結果集的查詢快取覆蓋所有其它查詢結果。

 

query_cache_type#**通用配置選項, 指定是否使用查詢緩衝1使用,0不使用

 

init_connect#**通用配置選項,伺服器為每個串連的用戶端執行的字串。字串由一個或多個SQL語句組成。要想指定多個語句,用分號間隔開。

 

bind-address #**通用配置選項, 綁定MySQL伺服器的IP地址。如果MySQL伺服器所在的電腦有多個IP地址,這個選項將非常重要。

 

ft_min_word_len#**通用配置選項,全文索引的最小單詞長度工。這個選項的預設設定是4,意思是在建立全文索引時不考慮那些由3個或更少的字元構建單詞。

 

thread_concurrency #**通用配置選項, 這個函數使應用程式給同一時間啟動並執行線程系統提供期望的線程數目。該值只在支援 thread_concurrency() 函數調用的系統上有意義(例如 Sun Solaris)。你應該對 thread_concurrency 嘗試 CPU 數量的 2/4/6/... 倍。

 

join_buffer_size #**通用配置選項, 該緩衝被用來最佳化 FULL JOIN(沒有索引的 JOIN)。無論如何,該 JOIN 在大多數情況下對效能是非常壞的,但是設定該變數為一個大值將減少對效能的影響。請看針對一定數量的 FULL JOIN 的“Select_full_join”狀態變數。如果 FULL JOIN 被發現,將分配給每個線程

 

thread_cache_size#**通用配置選項,我們保持在一個緩衝中的可重用的線程數。當一個用戶端中斷連線時,如果在這之前的線程沒有超過 thread_cache_size,用戶端的線程將放在緩衝中。根據實體記憶體設定規則如下:1G  ---> 8  2G  ---> 16  3G  ---> 32  >3G  ---> 64

 

thread_stack #**通用配置選項,使用的線程堆棧大小。該記憶體量總是在連線時間被保留的。MySQL 自己通常需要不超過 64K 的記憶體,然而如果你使用的是你自己的堆棧 UDF 函數或者你的系統針對某些操作需要更多堆棧,你可能需要設定該值為一個更高的值。

 

tmp_table_size#**通用配置選項,tmp_table_size內部(記憶體中的)暫存資料表的最大容量。如果一個表的增長超過該值,它將自動地轉換到基於磁碟的表。該限制是針對一個單一的表,但可以有很多這樣的表。

 

basedir #**通用配置選項,該參數指定了安裝 MySQL 的安裝路徑,填寫全路徑可以解決相對路徑所造成的問題。

 

datadir#**通用配置選項, 該參數指定了 MySQL 的資料庫檔案放在什麼路徑下。資料庫檔案即我們常說的 MySQL data 檔案。

 

wait_timeout#**通用配置選項, 伺服器關閉非互動串連之前等待活動的秒數。

 

skip-name-resolve #**通用配置選項,mysql接收到串連請求後,獲得的是用戶端的ip,為了更好的匹配mysql.user裡的許可權記錄(某些是用hostname定義的)。如果mysql伺服器設定了dns伺服器,並且用戶端ipdns上並沒有相應的hostname,那麼這個過程很慢,導致串連等待。添加skip-name-resolve以後就跳過著一個過程了。

 

log_long_format#**通用配置選項,開啟此項會記錄使得那些沒有使用索引的查詢也被作為到慢速查詢附加到慢速日誌裡

 

relay-log#**通用配置選項,從伺服器I/O線程將主伺服器的二進位日誌讀取過來記錄到從伺服器本地檔案,然後SQL線程會讀取relay-log日誌的內容並應用到從伺服器

 

relay-log-index#**通用配置選項,作為slave的時候存放binlog的索引檔案

 

skip-slave-start#**通用配置選項,告訴從伺服器當伺服器啟動時不啟動從伺服器線程。使用START SLAVE語句在以後啟動線程。

 

innodb_data_home_dir #**innodb配置選項,如果你希望 InnoDB 資料表空間檔案儲存體到其它的地方,設定該選項。預設的是 MySQL 資料目錄。

 

innodb_data_file_path #**innodb配置選項,InnoDB 儲存資料到一個或多個資料檔案,形成資料表空間。如果對於你對你的資料有一個單一的物理裝置,那麼一個單一的自動擴充檔案就已經足夠了。在其它情況下,每裝置一個單一檔案是一個非常好的選擇。你也可以配置 InnoDB 來使用原始的磁碟分割 - 請參考手冊以擷取更多有關這個的資訊

 

innodb_log_group_home_dir#**innodb配置選項, InnoDB 記錄檔的位置。預設為 MySQL 的資料目錄。你可能希望指定它到一個專用的硬碟或一個 RAID1 卷標來改善效能。

 

innodb_additional_mem_pool_size#**innodb配置選項,該參數指定InnoDB用來儲存資料字典和其他內部資料結構的記憶體池大小。預設值是1M。通常不用太大,只要夠用就行,應該與表結構的複雜度有關係。如果不夠用,MySQL會在錯誤記錄檔中寫入一條警告資訊。根據MySQL手冊,對於2G記憶體的機器,推薦值是20M

 

innodb_buffer_pool_size #**innodb配置選項,InnoDB,不像 MyISAM,使用一個緩衝池來緩衝索引和行資料。你將該值設得越大,在表中訪問需要的資料時,磁碟 I/O 就越少。在一個專用的資料庫伺服器上,你可以設定該參數到機器實體記憶體大小的 80%。不要把它設定得太大,因為實體記憶體的競爭可能導致作業系統中的分頁。注意,在 32 位的系統上,你可能在每個處理器的使用者級記憶體上被限制在 2-3.5G,因此不要把它設定得太高。

 

innodb_file_io_threads #**innodb配置選項,InnoDB,非同步 IO 操作所使用的 IO 線程數。該值在 Unix 系統上被寫入程式碼為 4,但在 Windows 上,磁碟 I/O 可能受益於一個更大的數字。

 

innodb_thread_concurrency #**innodb配置選項,InnoDB 核心裡面允許的線程數量。最佳的值高度取決於應用程式、硬體以及作業系統的調度屬性。一個太高的值可能導致線程顛簸。

 

innodb_flush_log_at_trx_commit #**innodb配置選項,如果設定為 1InnoDB 在每次提交(提供完整的 ACID 行為)時重新整理交易記錄到磁碟。如果你想安全地進行折中,並且你正在運行小事務,你可以為 0 2 來減少日誌的磁碟 I/O。值 0 表示日誌只被寫入到記錄檔,並且記錄檔大約每秒一次重新整理到磁碟。值 2 表示日誌在每次提交時被寫入到記錄檔,但是記錄檔只是大約每秒一次被重新整理到磁碟。

 

innodb_log_buffer_size #**innodb配置選項,InnoDB 緩衝日誌資料所使用的緩衝區大小。一旦它滿了,InnoDB 將重新整理它到磁碟。因為不管怎麼它都是每秒重新整理一次,所以沒有必要讓它變得很大(甚至是很長的事務)。

 

innodb_log_file_size#**innodb配置選項,一個日誌組中每個記錄檔的大小。你可以設定記錄檔的聯合大小為你的緩衝池大小的 25%-100%,以避免對記錄檔不必要的緩衝池動態重新整理重寫。然而,注意,一個更大的記錄檔大小將增加恢複處理所需的時間。

 

innodb_log_files_in_group#**innodb配置選項,日誌組中檔案的總數。通常值為 2-3 就已足夠了。

 

innodb_max_dirty_pages_pct#**innodb配置選項,InnoDB 緩衝池中允許的髒頁面的最大百分比。如果它到達了,InnoDB 將開始積極地清理它們,以避免消耗完所有的乾淨頁面。這是一個軟式節流,不保證能夠一直保持。

 

innodb_lock_wait_timeout #**innodb配置選項, 一個 InnoDB 事務應等待的在復原之前被授權鎖定的時間長度。InnoDB 在它自己的鎖定表中自動地檢測事務死結,並復原事務。如果你在相同的事務中使用 LOCK TABLES 命令,或者其它比 InnoDB 更加事務安全的儲存引擎,那麼稍後會出現 InnoDB 不能提示的死結。如果像這樣,逾時對於解決問題是很有用的。

 

log-slave-updates #**通用配置選項,配置從庫上的更新操作是否寫二進位檔案,如果這台從庫,還要做其他從庫的主庫,那麼就需要打這個參數,以便從庫的從庫能夠進行日誌同步這個參數要和—logs-bin一起使用。

 

slave-skip-errors#**通用配置選項, 在複製過程,由於各種原因導致binlog中的sql出錯,預設情況下,從庫會停止複製,要使用者介入。可以設定Slave-skip-errors來定義錯誤號碼,如果複製過程中遇到的錯誤號碼是定義的錯誤號碼,便可以跳過。如果從庫是用來做備份,設定這個參數會存在資料不一致,不要使用。如果是分擔主庫的查詢壓力,可以考慮。

 

sync_binlog #**通用配置選項,這個參數對於mysql系統來說是至關重要的,它不僅影響binlogmysql所帶來的效能損耗,而且還影響Mysql中資料的完整性。對於”sync_binlog“參數說明”sync_binlog=0 當事物提交之後,mysql 僅僅是將binlog_cache 中的資料寫入binlog檔案。但不執行fsync 之類的磁碟同步指令通知檔案系統將緩衝重新整理到磁碟而讓Filesystem 自行決定什麼時候做同步sync_binlog=n在進行n次事物提交之後,mysql 將執行一次fsync 之類的磁碟同步指令,通知檔案系統將binlog檔案的緩衝重新整理到磁碟。

 

auto_increment_increment=2 #**通用配置選項,自增長ID,必須相同,兩台就為2,三台就為3,如果就主從就可以不設定

 

auto_increment_offset=1#**通用配置選項,自增長的起始位置這裡為1,第二台就必須為2

mysql參數及解釋

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.