2009年4月17日 星期五

MySQL InnoDB存儲引擎的一些參數

InnoDB做為MySQL目前最廣泛的事務存儲引擎,很多地方的設計和Oracle都是共通的。對於Oracle DBA來說,學習的時候可以多和Oracle的一些特性進行類比,當然也要明白二者之間的區別。
innodb_additional_mem_pool_size
用於緩存InnoDB數據字典及其他內部結構的內存池大小,類似於Oracle的library cache。這不是一個強制參數,可以被突破。
innodb_buffer_pool_size
內存緩衝池大小,用於緩存表和索引數據等。類似於Oracle的buffer cache,如果可能,盡可能的設置大一點。
innodb_log_buffer_size
日志緩衝區大小,類似於Oracle的log buffer
innodb_log_file_size
日志文件大小。默認會創建2個5M大小的名為ib_logfile0和ib_logfile1的文件。日志文件的數目由參數innodb_log_files_in_group指定。存放位置由innodb_log_group_home_dir指定。
innodb_data_file_path
指定InnoDB表空間數據文件名,大小以及其他屬性。所有文件的加起來不能少於10M。多個數據文件之間以逗號分割,屬性之間以冒號分割。默認創建一個大小10MB名為ibdata1的可自動擴展的數據文件,一般在生產環境中都需要根據實際情況指定,由於往表空間中添加數據文件需要停機,盡量在規劃的時候做好準備,如果可以的話最好開啟最後一個數據文件的自動增長屬性。數據文件的個數在規劃的時候還需要考慮另外一個 innodb_open_files參數。
innodb_file_per_table
取值為ON或者OFF。是否為每個table使用單獨的數據文件保存。如果係統中表的個數不多,並且沒有超大表,使用該參數可以使得各個表之間的維護相對獨立,有一定的好處。
innodb_autoextend_increment
當自動擴展表空間被填滿之時,每次擴展空間的大小,默認值是8(單位MB)。該參數可以動態修改:


以下為引用的內容:
mysql> set global innodb_autoextend_increment=10;
Query OK, 0 rows affected (0.01 sec)
innodb_status_file
定期將show inndb status的結果輸出保存到文件中,建議開啟以便分析性能。
下面是windows上一個MySQL默認的參數查詢結果:
以下為引用的內容:
mysql> show variables like 'Innodb%';
------------------------------------------------

Variable_name  Value       

------------------------------------------------

innodb_additional_mem_pool_size 2097152        

innodb_autoextend_increment   8           

innodb_buffer_pool_awe_mem_mb  0           

innodb_buffer_pool_size     8388608        

innodb_checksums         ON          

innodb_commit_concurrency    0           

innodb_concurrency_tickets    500          

innodb_data_file_path      ibdata1:10M:autoextend

innodb_data_home_dir                  

innodb_doublewrite        ON          

innodb_fast_shutdown       1           

innodb_file_io_threads      4           

innodb_file_per_table      OFF          

innodb_flush_log_at_trx_commit  1           

innodb_flush_method                  

innodb_force_recovery      0           

innodb_lock_wait_timeout     50          

innodb_locks_unsafe_for_binlog  OFF          

innodb_log_arch_dir                  

innodb_log_archive        OFF          

innodb_log_buffer_size      1048576        

innodb_log_file_size       10485760       

innodb_log_files_in_group    2           

innodb_log_group_home_dir    .          

innodb_max_dirty_pages_pct    90          

innodb_max_purge_lag       0           

innodb_mirrored_log_groups    1           

innodb_open_files        300          

innodb_rollback_on_timeout    OFF          

innodb_support_xa        ON          

innodb_sync_spin_loops      20          

innodb_table_locks        ON          

innodb_thread_concurrency    8           

innodb_thread_sleep_delay    10000         

沒有留言: