MySQL經常使用配置參數

基本配置:mysql

datadir:指定mysql的數據目錄位置,用於存放mysql數據庫文件、日誌文件等。算法

  配置示例:datadir=D:/wamp/mysqldata/Datasql

default-character-setmysql服務器默認字符集設置。數據庫

  配置示例:default-character-set=utf8服務器

skip-grant-tables:當忘記mysql用戶密碼的時候,能夠在mysql配置文件中配置該參數,跳過權限表驗證,不須要密碼便可登陸mysql併發

 

日誌相關:性能

log-error:指定錯誤日誌文件名稱,用於記錄當mysqld啓動和中止時,以及服務器在運行過程當中發生任何嚴重錯誤時的相關信息。優化

  配置示例:log-error="WJT-PC.err"(默認在mysql數據目錄下)spa

log-bin:指定二進制日誌文件名稱,用於記錄對數據形成更改的全部查詢語句。日誌

  配置示例:log-bin="WJT-PC-bin.log"(默認在mysql數據目錄下)

binlog-do-db:指定將更新記錄到二進制日誌的數據庫,其餘全部沒有顯式指定的數據庫更新將被忽略,不記錄在日誌中。

  配置示例:binlog-do-db=db_name

binlog-ignore-db:指定不將更新記錄到二進制日誌的數據庫,其餘沒有顯式忽略的數據庫都將進行記錄。

  配置示例:binlog-ignore-db=db_name若是想記錄或忽略多個數據庫,能夠對上面兩個選項分別使用屢次。

sync-binlog:指定多少次寫日誌後同步磁盤。

  配置示例:sync-binlog=N

general-log:是否開啓查詢日誌記錄。

  配置示例:general-log=1

general_log_file:指定查詢日誌文件名,用於記錄全部的查詢語句。

  配置示例:general_log_file="WJT-PC.log"(默認在mysql數據目錄下)

slow-query-log:是否開啓慢查詢日誌記錄。

  配置示例:slow-query-log=1

slow_query_log_file:指定慢查詢日誌文件名稱,用於記錄消耗時間較長的查詢語句。

  配置示例:slow_query_log_file="WJT-PC-slow.log"(默認在mysql數據目錄下)

long_query_time:設置慢查詢的時間,超過這個時間的查詢語句才記錄日誌。

  配置示例:long_query_time=10(單位:秒)

log-slow-admin-statements:是否將慢管理語句(例如OPTIMIZE TABLEANALYZE TABLEALTER TABLE)寫入慢查詢日誌。

 

存儲引擎相關:

default-table-type:設置mysql的默認存儲引擎。

innodb_data_home_dirInnoDB引擎的共享表空間數據文件根目錄。若沒有設置,則使用mysqldatadir目錄做爲缺省目錄。

innodb_data_file_path:單獨指定共享表空間數據文件的路徑與大小。數據文件的完整路徑由innodb_data_home_dir與這裏配置的值組合起來,文件大小以MB單位指定。

  配置示例:innodb_data_home_dir=innodb_data_file_path=ibdata1:12M;/data/mysql/mysql3306/data1/ibdata2:12M:autoextend

  若是想爲innodb表空間指定不一樣目錄下的文件,必須指定 innodb_data_home_dir =。這個例子中會在datadir下創建ibdata1,在/data/MySQL/mysql3306/data1/目錄下建立ibdata2

innodb_file_per_table:是否開啓獨立表空間,若開啓,InnoDB將使用獨立的.idb文件建立新表而不是在共享表空間中建立。

  配置示例:innodb_file_per_table=1

innodb_autoinc_lock_mode:配置在向有着auto_increment列的表插入數據時,相關鎖的行爲。該參數有3個取值:

  0tradition傳統,全部的insert語 句開始的時候獲得一個表級的auto_inc鎖,在語句結束的時候才能釋放 這個鎖,影響了併發的插入。

  1consecutive連續,mysql能夠一次生成 幾個連續的auto_inc的值,auto_inc不須要一直保持到語句結束,只要 語句獲得了相應的值後就能夠提早釋放鎖(這也是mysql的默認模式)。

  2interleaved交錯,這個模式下已經沒有了auto_inc鎖,因此性能是最好的,可是對於同一個語句來講它獲得的auto_inc的值可能不是連續的。

  配置示例:innodb_autoinc_lock_mode=1

low_priority_updates:在myisam引擎鎖使用中,默認狀況下寫請求優先於讀請求,能夠經過將該參數設置爲1來使myisam引擎給予讀請求優先權限, 全部的insertupdatedeletelock table write語句將等待直到受影響的表沒有掛起的selectlock table read

  配置示例:low_priority_updates=0(默認配置)

max_write_lock_count:當一個myisam表的寫鎖定達到這個值後,mysql就暫時 將寫請求優先級下降,給部分讀請求得到鎖的機會。

innodb_lock_wait_timeoutInnoDB鎖等待超時參數,若事務在該時間內沒有獲 得須要的鎖,則發生回滾。

  配置示例:innodb_lock_wait_timeout=50(默認50秒)

max_heap_table_size:設置memory表的最大空間大小,該變量能夠用來計算 memory表的max_rows值。在已有memory表上設置該參數是沒有效果 的,除非重建表。

 

查詢相關:

max_sort_length:配置對blobtext類型的列進行排序時使用的字節數(只對配置的前max_sort_length個字節進行排序,其餘的被忽略)

max_length_for_sortmysql有兩種排序算法,兩次傳輸排序和單次傳輸排序。當查詢須要全部列的總長度不超過max_length_for_sort時,mysql使用 單次傳輸排序,不然使用兩次傳輸排序。

optimizer_search_depth:在關聯查詢中,當須要關聯的表數量超過optimizer_search_depth的時候,優化器會使用「貪婪」搜索的方式查找「最優」的關聯順序。

相關文章
相關標籤/搜索