程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 影響數據庫性能的MySQL系統變量

影響數據庫性能的MySQL系統變量

編輯:MySQL綜合教程

MySQL系統變量中有哪些會影響到數據庫的性能呢?下面就為您列舉了一些影響數據庫性能的MySQL系統變量,希望可以讓您對MySQL系統變量有更深的了解。

bulk_insert_buffer_size

批量插入緩存大小, 這個參數是針對MyISAM存儲引擎來說的.適用於在一次性插入100-1000+條記錄時, 提高效率.默認值是8M.可以針對數據量的大小,翻倍增加.

concurrent_insert
並發插入, 當表沒有空洞(刪除過記錄), 在某進程獲取讀鎖的情況下,其他進程可以在表尾部進行插入.
值可以設0不允許並發插入,1當表沒有空洞時,執行並發插入,2.不管是否有空洞都執行並發插入.
默認是1.針對表的刪除頻率來設置.

delay_key_write

針對MyISAM存儲引擎,延遲更新索引.意思是說,update記錄時,先將數據up到磁盤,但不up索引,將索引存在內存裡,當表關閉時,將內存索引,寫到磁盤. 值為 0不開啟, 1開啟. 默認開啟.

delayed_insert_limit, delayed_insert_timeout, delayed_queue_size
延遲插入, 將數據先交給內存隊列, 然後慢慢地插入.但是這些配置,不是所有的存儲引擎都支持, 目前來看, 常用的InnoDB不支持, MyISAM支持. 根據實際情況調大, 一般默認夠用了.

expire_logs_days

自動刪除超過指定天數的日志. 建議為0,表示“不自動刪除”.

flush, flush_time

是否啟用, 同步表數據到磁盤.以及自動同步的間隔時間.
針對flush_time, 官方建議只在Windows 9x或Me,或有最小資源的系統中使用該選項.所以,建議關閉.

ft_boolean_syntax, ft_max_word_len, ft_min_word_len,ft_query_expansion_limit, ft_stopword_file

針對MyISAM設置的參數, 全文搜索特性. 如果你不使用 FULLTEXT 索引,就不需要優化了. 詳見mysql參考手冊.

join_buffer_size

用於表間關聯(join)的緩存大小.建議設為 131072.(128K)

key_buffer_size

索引塊緩存區大小, 針對MyISAM存儲引擎,該值越大,性能越好.但是超過操作系統能承受的最大值,反而會使mysql變得不穩定.
如果不是MyISAM存儲引擎,一般設置為 4-32M大小.

key_cache_age_threshold, key_cache_block_size, key_cache_division_limit

鍵值緩存的相關設置.需要針對實際情況調優.只是針對MyISAM儲存引擎.
 
large_pages

是否啟動大頁面支持.意思是,可以一些緩存分配更大的空間.這個特性已經被InnoDB, MyISAM等常用存儲引擎支持.

low_priority_updates

低優先級更新.意思是, 所有的寫操作(表寫鎖), 包括update,delete,insert等都需要等待讀操作完成後才執行 (表讀鎖解開).
因為是針對表的鎖,所以,這裡僅支持MyISAM.

max_write_lock_count

最大寫鎖數量.這個變量的含義是, 當寫鎖達到一定數量後, 就不限制讀鎖, 允許一部分讀鎖進入.(可以讀數據了,否則需要等待寫鎖釋放後,才能讀)

因為是針對表的鎖,所以,這裡僅支持MyISAM.

preload_buffer_size

重載索引時分配的緩沖區大小, 該變量僅支持MyISAM.

read_buffer_size, read_rnd_buffer_size

每個線程連續掃描時為掃描的每個表分配的緩沖區的大小(字節)。如果進行多次連續掃描,可能需要增加該值, 默認值為131072。

sort_buffer_size

每個排序線程分配的緩沖區的大小。增加該值可以加快ORDER BY或GROUP BY操作.默認數值是2097144(2M),建議加大到 16777208 (16M)。

timed_mutexes

顯示mutexes的統計信息, 默認關閉OFF

tmp_table_size

臨時表的大小,在未超過大小之前進行的操作是在內存中的, 當超過後,mysql會自動轉換到硬盤上.

NULL與MySQL空字符串的區別

深入研究MySQL結果字符串

MySQL截取字符串函數方法

MySQL分割字符串的實現

深入了解MySQL字符串比較函數

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