導航:首頁 > 數據分析 > 數據字典在哪個表中

數據字典在哪個表中

發布時間:2025-04-24 23:49:28

① "數據字典"指的是什麼

一、數據字典並不是傳統的紙質字典,它是一些系統自帶表,可以查詢資料庫相關信息,一般存在於電腦系統或是其它電子系統中,供人查閱不了解條目的信息與解釋。
數據字典存儲有關數據的來源、說明、與其他數據的關系、用途和格式等信息,它本身就是一個資料庫,存儲「關於數據項的數據」。數據字典是個指南,它為資料庫提供了「路線圖」,而不是「原始數據」。
換句話說,數據字典通常是指資料庫中數據定義的一種記錄,類似一個資料庫的數據結構,但其內容要比資料庫的數據結構描述豐富得多(Malamud, 1989)。在收集有關數據信息,建立資料庫的初始階段,必須建立數據項的命名約定,必須統一不同部門、不同個人之間對共同關心的數據的內涵、來源和命名的觀念。
這個過程要涉及數據監管人、用戶和資料庫開發人員,是一個需要反復多次的過程。這個統一的命名約定,及其附帶的說明,就是數據字典。
二、數據字典內容包括:
1、資料庫中所有模式對象的信息,如表、視圖、簇、及索引等;
2、分配多少空間,當前使用了多少空間等;
3、列的預設值;
4、約束信息的完整性;
5、用戶的名字;
6、用戶及角色被授予的許可權;
7、用戶訪問或使用的審計信息;
8、其它產生的資料庫信息。

② MySQL Data Dictionary 詳解

在 MySQL 8.0 之前,Server 層和存儲引擎(例如 InnoDB)各自保留元數據,如 schema 名稱、表定義等,導致信息存儲重復冗餘,且存在元數據不同步的問題。不同引擎間元數據存儲形式和位置的差異(如.FRM, .PAR, .OPT, .TRN and .TRG 文件)使得元數據管理分散且復雜。將元數據存放在不支持事務的表和文件中,使 DDL 變更非原子,增加了崩潰恢復的難度。為解決這些挑戰,MySQL 8.0 引入了 data dictionary,實現統一的元數據管理。

data dictionary 通過 Server 層和引擎層共享的 InnoDB 引擎表存儲元數據,支持原子性操作,有效避免了元數據不同步的問題。它提供統一的 client API,包括元數據的基本操作(如獲取、刪除、存儲、更新)。底層實現包括對 InnoDB 引擎數據字典表的讀寫操作,以及兩級緩存加速內存訪問,提高性能。

在內存和引擎層面,data dictionary 的數據結構遵循多態和介面/實現設計模式。Table_impl 是一個常訪問的內存結構,包含表相關的元數據屬性,如基本引擎類型、注釋、分區類型等。Table_impl 還集成列信息、索引信息和分區信息等復雜屬性,這些屬性來自其他 DD 表。Column_impl 和 Partition_impl 分別表示列和分區的元信息,與 Table_impl 聯系。

Table_impl 的持久化存儲和訪問通過 DD tables 實現,這些表存儲在 mysql 表空間中,用戶可通過 INFORMATION SCHEMA 查看部分視圖。獲取表元信息時,會調用 Storage_adapter::get() 介面,該介面根據 Tables 對象的枚舉類型下標查找表定義中的列。

data dictionary 實現了兩級緩存:一級是客戶端本地的緩存,用於加速對相同對象的重復訪問;二級是多線程共享的緩存,確保所有線程可訪問並處理並發訪問。緩存底層統一基於哈希表實現。

局部緩存位於每個 Dictionary_client 內部,管理不同類型的對象緩存,包含 committed、uncommitted 和 dropped 狀態的對象。共享緩存是全局唯一的,通過 Shared_dictionary_cache 實現,包含針對各種類型對象的緩存。

緩存獲取過程從一級局部緩存到二級共享緩存,最後到存儲引擎。在緩存中獲取時,優先查找 uncommitted 和 dropped 的 registry,然後是 committed registry,如果未找到,則從存儲引擎載入。

在緩存 miss 的處理中,共享緩存會加鎖後進行 hash map 查找,若存在則增加引用計數並返回;若不存在,則從存儲引擎載入並加入緩存。並發控制通過廣播和等待機制實現。

Auto_releaser 類用於確保在作用域內獲取的 DD cache 對象不被釋放,通過鏈式管理在不同層次間轉移釋放需求。在 DDL 過程中,通過 data dictionary 完成表定義的刪除和存儲。

總結而言,MySQL data dictionary 通過統一的管理、高效的緩存機制和原子性操作,顯著提高了元數據的管理效率和安全性,簡化了跨層訪問的復雜性。

③ 數據字典與表有什麼聯系和區別

區別: 在資料庫中,數據字典描述了一組表、視圖和索引的結構定義。數據字典信息通常存放在資料庫的系統表中。而表描述的是用戶數據的結構。
聯系:數據字典描述了表的元信息,即表的結構和定義的相關信息。

閱讀全文

與數據字典在哪個表中相關的資料

熱點內容
電子血壓表怎麼讀數據 瀏覽:610
軟體開發和編程哪個前景好 瀏覽:30
手機保存圖片在相冊里找不到文件 瀏覽:42
xp桌面圖案保存哪個文件夾 瀏覽:136
dnf70版本紅眼 瀏覽:484
越來越不懂兩個版本 瀏覽:258
javabigdecimal位數 瀏覽:316
學好編程需要學哪些東西 瀏覽:186
概預算教程 瀏覽:893
90版本國服第一驅魔 瀏覽:436
手機qq音樂啟動程序 瀏覽:840
口袋妖怪破解版12版本 瀏覽:632
數據研究的崗位有哪些 瀏覽:124
今日頭條網站怎麼改名 瀏覽:663
信口袋app什麼系列口子 瀏覽:374
安微六安在哪個網站查中考成績 瀏覽:121
編程貓下雨怎麼寫 瀏覽:857
ai混合工具怎麼用 瀏覽:916
防火牆限制訪問網站怎麼辦 瀏覽:670
炫舞隱藏人物文件 瀏覽:47

友情鏈接