增加mysql表打开缓存?

JSh*_*ean 7 mysql innodb mysql-5.5

我经常读到,最好慢慢增加这个变量。有人可以解释为什么吗?我的状态表明我应该增加它......什么是最佳实践/“慢慢地”?

谢谢!

Rol*_*DBA 4

由于您使用的 InnoDB 启用了innodb_file_per_table,因此您需要提高innodb_open_files,因为这决定了文件上打开的文件句柄的数量.ibd

\n\n

在 MySQL 5.6 中,此设置的处理方式略有不同。

\n\n
\n
\n

仅当您使用多个 InnoDB 表空间时,此变量才相关。它指定 MySQL\n 可以同时打开的 .ibd 文件的最大数量。最小值为 10。从 MySQL 5.6.6 开始,如果未启用 innodb_file_per_table,则默认值为 300,否则为 300 和 table_open_cache 中的较高者。在 5.6.6 之前,默认值为 300。

\n\n

用于 .ibd 文件的文件描述符仅适用于 InnoDB 表。它们独立于 --open-files-limit\n 服务器选项指定的内容,并且不影响表缓存的操作。有关一般 I/O 调整建议,请参阅第 8.5.7 节,\xe2\x80\x9c优化 InnoDB 磁盘\n I/O\xe2\x80\x9d。

\n
\n
\n\n

这是MySQL 性能博客中有关设置 innodb_open_files 的附加参考。

\n\n

将innodb_open_files提高到一个大数字应该不会那么麻烦,但请明智地选择您选择的数字。

\n