首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql如何维护ibd文件?

mysql如何维护ibd文件?
EN

Database Administration用户
提问于 2022-11-09 18:23:43
回答 1查看 69关注 0票数 0

mysql是否会将整个ibd文件加载到内存中,并在向innodb插入新行时处理内存中的所有内容?

数据大小可能相当大,因此主索引可能不会加载到内存中。

二级索引只链接到主索引,这意味着二级索引可能不是很大。那么,为什么不将所有的辅助索引加载到内存中,并在内存中进行更新,除非需要刷新到磁盘。

如果二级索引可以加载到内存中,为什么必须使用B树?

EN

回答 1

Database Administration用户

发布于 2022-11-09 18:39:49

不,只有.ibd文件的一个子集被加载到内存中。加载的页面是由您运行的查询检查的页面。在运行其他查询时,这可能会导致最近使用最少的页面被逐出。

这里都描述了这一点:https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool.html

如果查询不使用这些索引,或者只使用索引的一部分,则没有必要将所有辅助索引加载到内存中。

不需要将BTREE指定为InnoDB表的索引类型。默认情况下,InnoDB索引是BTREE。InnoDB不支持散列索引类型,因此不需要指定BTREE。InnoDB支持的其他索引类型是全文或空间索引,但仅此而已。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/319405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档