Configuration Differences in MySQL 5.4 from MySQL 5.1
There are Several variables and options are new or changed in MySQL 5.4 to provide more flexible runtime configuration, and better “out of box” configuration of default values for MySQL operation on up to 16-way x86 servers and 64-way CMT servers with 4GB or more memory.
Note
The changes to InnoDB
configuration values may cause issues if you upgrade to MySQL 5.4 from an older version or MySQL, or if you upgrade from MySQL 5.4.0 through 5.4.2 to 5.4.3 or higher. See Section 2.12.1.1, “Upgrading from MySQL 5.1 to 5.4”.
These system variables are new:
innodb_adaptive_flushing
: Controls adaptive flushing of dirty pages. Default:ON
.innodb_change_buffering
: Controls insert buffering. Default:inserts
(buffer insert operations).innodb_file_format
: The format for new InnoDB tables. Default:Antelope
.innodb_file_format_check
: Whether to perform file format compatibility checking. Default:ON
.innodb_io_capacity
: The limit on the maximum number of I/O operations per second (IOPS) the server can perform. Default: 200.innodb_read_ahead_threshold
: Controls sensitivity of linear read-ahead. Default: 56.innodb_replication_delay
: The replication thread delay (in ms) on the slave server ifinnodb_thread_concurrency
is reached. Default: 0.innodb_read_io_threads
,innodb_write_io_threads
: The number of background I/O threads to use for read prefetch requests and for writing dirty pages from the buffer cache to disk. Default: 4.innodb_spin_wait_delay
: Maximum delay between polls for a spin lock. Default: 6.innodb_stats_sample_pages
: How many index pages to sample for statistics calculations. Default: 8.innodb_strict_mode
: Whether InnoDB returns errors rather than warnings for certain exceptional conditions (analogous to strict SQL mode). Default:OFF
.innodb_use_sys_malloc
: Whether InnoDB uses the OS (system) or its own memory allocator. Default:ON
.innodb_version
: The version of InnoDB.
More information about the new system variables can be found in the InnoDB Plugin
Manual at http://www.innodb.com/products/innodb_plugin/plugin-documentation.
The default or minimum value of these existing system variables has changed:
innodb_additional_mem_pool_size
: Default increased from 1MB to 8MB.innodb_buffer_pool_size
: Default increased from 8 MB to 128MB. Minimum increased from 1MB to 5MB.innodb_file_io_threads
: Removed (replaced byinnodb_read_io_threads
andinnodb_write_io_threads
).innodb_log_buffer_size
: Default increased from 1MB to 8MB.innodb_max_dirty_pages_pct
: Default decreased from 90 to 75. Maximum decreased from 100 to 99 to never allow a completely dirty buffer pool.innodb_sync_spin_loops
: Default changed from 20 to 30.innodb_thread_concurrency
: Default changed from 8 to 0. In effect, this changes concurrency from 8 to “infinite”.table_definition_cache
: Default and minimum increased from 256 to 400.table_open_cache
: Default increased from 64 to 400.
These system variables have been made dynamic and can be modified at runtime:
innodb_adaptive_hash_index
(global value)innodb_file_per_table
(global value)innodb_io_capacity
(global value)innodb_lock_wait_timeout
(global and session values)
This status variable is new:
Innodb_have_atomic_builtins
: Indicates whether the server was built with atomic instructions.
This server option is new:
--super-large-pages
: Boolean option. Large page support is enhanced for recent SPARC platforms. Standard use of large pages in MySQL attempts to use the largest size supported, up to 4MB. Under Solaris, a “super large pages” feature enables uses of pages up to 256MB. This feature can be enabled or disabled by using the--super-large-pages
or--skip-super-large-pages
option.