table_open_cache_instances
INFO
Rule IDs: tc_003
Overview
- Purpose
- Documented in the MySQL 8.4 manual as a server system variable (scope: Global). Purpose and semantics are described at the linked manual page.
- Dynamic (MySQL 8.4 reference)
- MySQL 8.4 marks this variable as not dynamic (
Dynamic= No). It must be set inmy.cnfor on the command line; changing it requires a restart. - Default value
- 16 (MySQL 8.4)
- Version and product notes
- MariaDB and Percona Server may use different names, defaults, or dynamic behavior; verify their documentation.
- Documentation
- https://dev.mysql.com/doc/refman/8.4/en/server-system-variables.html#sysvar_table_open_cache_instances
- Other vendors
What is checked
Rules that reference this variable, with their severity and what each rule detects:
- INFO
tc_003: Set table_open_cache_instances to at least 8 (16 is the default in MySQL 8.0) on high-concurrency systems.
Tuning guidance
- Recommended actions:
- Set table_open_cache_instances to at least 8 (16 is the default in MySQL 8.0) on high-concurrency systems.
- Trade-offs: A larger table cache reduces file-open overhead but consumes file descriptors and memory. Size it relative to the number of tables accessed concurrently, not the total table count.
Example
Configure in my.cnf (or equivalent) or server startup options, then restart.