第7章:优化 / 7.4. 优化数据库结构 / 7.4.8. MySQL如何计算打开的表

当运行mysqladmin status时,将看见象这样的一些东西:

Uptime: 426 Running threads: 1 Questions: 11082
Reloads: 1 Open tables: 12
 

如果你仅有6个表,Open tables值为12可能有点令人困惑。

MySQL是多线程的,因此许多客户可以同时在同一个表上进行查询。为了使多个客户线程在同一个表上有不同状态的问题减到最小,表被每个并发进程独立地打开。这样需要额外的内存但一般会提高性能。对于MyISAM表,数据文件需要为每个打开表的客户提供一个额外的文件描述符。(索引文件描述符在所有线程之间共享)

下一节中提供了该主题的更多的信息。参见7.4.9节,“MySQL如何打开和关闭表”