MySQL常用配置參數


基本配置:

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

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

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

  配置示例:default-character-set=utf8

skip-grant-tables:當忘記mysql用戶密碼的時候,可以在mysql配置文件中配置該參數,跳過權限表驗證,不需要密碼即可登錄mysql

 

日志相關:

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

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

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的時候,優化器會使用“貪婪”搜索的方式查找“最優”的關聯順序。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM