MySQL 8 Data Dictionary, Dictionary Object Cache and table_definition_cache
Posted by:
Vasanth S
Date: June 07, 2024 01:52AM
Dear MySQL experts, I have a system with 3lakh tables. In MySQL 5.7, I have no issues with respect to the Data Dictionary memory that is allocated. I have no RAM spikes. My application runs smoothly.
I now want to upgrade my system to MySQL 8. When doing so, I faced memory issues. My RAM got exhausted. I have decided to increase my RAM. However, I want to have a very clear understanding about how this RAM is being occupied. So here are a few questions that I have:
1) Data Dictionary: I believe the entire memory allocated for the data dictionary is the value of 'Dictionary memory allocated' in SHOW ENGINE INNODB STATUS. Kindly correct me if I'm wrong. This dictionary will contain all the Data Dictionary tables.
2) Dictionary Object Cache: This is a segment inside the Data Dictionary, where my Table objects are cached. If my table has CHILD tables, then, the child meta are also loaded in the cache, thereby resulting in RAM usage spike.
3) table_definition_cache: An LRU based table definition storage which evicts definitions from the cache after use.
However, I want in depth proper working related information about these storages. What differentiates them and how Eviction is handled for each of these stores. Can someone kindly reply?
Subject
Written By
Posted
MySQL 8 Data Dictionary, Dictionary Object Cache and table_definition_cache
June 07, 2024 01:52AM
Sorry, only registered users may post in this forum.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.