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 |
+---------------------------------+------------------------+