mysqld 有 32k 个句柄是正常的吗?

mysqld 有 32k 个句柄是正常的吗?

我在 Windows 7 64 位上运行 Wampserver 2.0i。

我没有遇到任何进程的问题,但我注意到它mysqld维护了超过 32,000 个打开的句柄。这是该进程的正常行为吗?

我也正在运行 MS SQL Server,其进程(sqlservr)只有 400 多个句柄。

答案1

对于 MyISAM,每个表由 .frm、.MYD 和 .MYI 组成。也就是说每个 MyISAM 表有三个文件句柄。

MyISAM 中的临时文件可以频繁打开和关闭。

对于 InnoDB(ACID 兼容存储引擎),可以有那么多线程。

要管理的InnoDB缓冲池。

如果 innodb_file_per_table 关闭,则您将有以下线程:
读取/更新 ibdata1 中的元数据
读取/更新 ibdata1 中的数据页
读取/更新 ibdata1 中的索引页
读取/更新 ibdata1 中的 MVCC(多版本并发控制)数据
读取/更新 ibdata1 中的 ib_logile0 和 ib_logile1(重做日志信息)中的 MVCC 数据

如果 innodb_file_per_table 处于开启状态,则您有以下线程:
读取/更新 ibdata1 中的元数据
读取/更新 .ibd 文件中的数据页
读取/更新 .ibd 文件中的索引页
读取/更新 ibdata1 中的 MVCC(多版本并发控制)数据
读取/更新 ibdata1 中的 MVCC 数据(ib_logile0 和 ib_logile1(重做日志信息))

只要没有损坏,就没事。

我推荐您阅读以下书籍:

MySQL 5.0 认证学习指南
国际标准书号 0-672-32812-7
第 23 章 第 355-357 页 第 23.5 节:MySQL 如何使用内存
第 29 章 第 408-412 页 第 29.2 节:MyISAM 引擎
第 29 章 第 414-432 页 第 29.4 节:InnoDB 引擎

相关内容