WL#8397: Increase table_open_cache_instances compiled default
Affects: Server-5.7
—
Status: Complete
We decided to change compiled-in default of "table_open_cache_instances" from 1
(old) to 16 (new).
User Documentation
==================
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-8.html
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_table_open_cache_instances
Documentation changes:
Documentation of system variable 'table_open_cache_instances' at
http://dev.mysql.com/doc/refman/5.7/en/server-system-
variables.html#sysvar_table_open_cache_instances
Should be replaced with
table_open_cache_instances
+-------------------+-------+--------------------------------------------+
| System Variable |Name |table_open_cache_instances |
| |Variable Scope |Global |
| |Dynamic Variable |No |
+------------------------------------------------------------------------+
| Permitted Values |Type |integer |
| |Default |16 |
| |Min Value |1 |
| |Max Value |64 |
+-------------------+-------+--------------------------------------------+
The number of open tables cache instances (default 16). To improve scalability by
reducing contention among sessions, the open tables cache can be partitioned into
several smaller cache instances of size table_open_cache /
table_open_cache_instances . A session needs to lock only one instance to access
it for DML statements. This segments cache access among instances, permitting
higher performance for operations that use the cache when there are many sessions
accessing tables. (DDL statements still require a lock on the entire cache, but
such statements are much less frequent than DML statements.)
A value of 8 or 16 is recommended on systems that routinely use 16 or more cores.
Copyright (c) 2000, 2025, Oracle Corporation and/or its affiliates. All rights reserved.