千家信息网

MySQL 5.6中Table cache是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下MySQL 5.6中Table cache是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、Table CacheMySQL 5.6后,引入了"table_c
千家信息网最后更新 2026年10月31日MySQL 5.6中Table cache是什么

小编给大家分享一下MySQL 5.6中Table cache是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

一、Table Cache

MySQL 5.6后,引入了"table_cache_instances"参数来控制 table cache instance的个数。目前最大值是64,默认值是1。建议值是16,当系统CPU核数高于16时。引入此参数的目的是,提高并发。相当于把table cache 拆成了多个分区,每个分区的打开table句柄数为:table_open_cache / table_open_cache_instances。跟innodb_buffer_pool_instances参数有异曲同工的作用。
table_cache_instances的最大值为64,每个thread会使用哪个table cache instance,根据thread id取模得到:m_table_cache [thread_id % table_cache_instances]。其中m_table_cache是table cache的instance 分区数组。源码定义如下:

Table cache instance统一由Table_cache_manager类来管理。Table_cache_manager负责初始化和销毁table cache instance。
另外,取代LOCK_open锁的是64个m_lock mutex。因此大大降低了table cache 锁的争用,将其分摊到了64个instance上的m_lock mutex上。
但是涉及到多个table cache中的对象的DDL语句,仍然需要整个table cache级别的锁,即Lock_open。另外,对所有table cache instances以及table definition cache上锁时,也需持有Lock_open锁。

二、Table cache & Table definition cache

Table cache与Table definition cache是两个概念完全不同的东西。

Table cache:也就是通常说的 table open cache。存放当前已经打开的表句柄,与表创建时指定的存储引擎相关。这块在源码上的体现是 table object即有指向table share的指针,也有指向具体存储引擎的handler指针。

Table definition cache:存放表的定义信息。是frm文件在内存中的映射。MySQL需要打开frm文件,并将其内容初始化为Table Share 对象。这里存放与存储引擎无关的,独立的表定义相关信息。

为什么MySQL会出现这两个概念是因为:MySQL支持不同的存储引擎,每种存储引擎,数据存储的格式都是不一样的,因此需要指定一个存储引擎相关的handler。这就有了table cache的作用。另外表的定义也需要存放内存中,而表的定义frm文件每个存储引擎是通用的,需要另外独立开来,这就有了table definition cache。

看完了这篇文章,相信你对"MySQL 5.6中Table cache是什么"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

存储 引擎 参数 文件 不同 最大 两个 作用 信息 内存 句柄 多个 对象 指向 指针 最大值 概念 源码 篇文章 独立 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海卓越科技互联网 西安互联网科技 善班互联网科技 广州互联网络科技有限公司 兼蜜互联网科技 卓越科技互联网 招聘 富国互联网科技创新基金 中国的互联网科技企业的崛起 阿里互联网科技公司 昊天互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 消费医药和互联网科技 电子科技大学互联网创业大赛 佛山市拉法互联网科技有限公司 特约风豹互联网科技为什么扣费 中科明德北京互联网科技 卡尔迅互联网科技有限公司 万物互联网智能科技 银川新华互联网科技学校是国营吗 保山互联网科技靠谱吗 广东万易互联网科技有限公司惠州分公司 重庆互联网络科技 互联网科技缩写 玖二柒互联网科技公司待遇 北京三清互联网科技 武汉健翔互联网络科技有限公司 赶超互联网科技 微信多开 中国互联网有什么科技 广西泛欧互联网科技有限公司 互联网的科技体现在哪里
0