Home >Database >Mysql Tutorial >MySQL InnoDB存储引擎的一些参数_MySQL

MySQL InnoDB存储引擎的一些参数_MySQL

WBOY
WBOYOriginal
2016-06-01 13:53:31835browse

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn