MySQL是一種關系型數據庫管理系統(RDBM),數據通常被存儲在文件中。這篇文章將討論MySQL文件中數據的結構。
+--------------+ | 文件頭 | +--------------+ | 數據段 1 | +--------------+ | 空閑段 1 | +--------------+ | 數據段 2 | +--------------+ | 空閑段 2 | +--------------+ | ... | +--------------+
MySQL文件包含許多數據段和對應的空閑段。每個數據段包含表或索引的數據,而空閑段則用于存儲已刪除數據的空間。MySQL使用一個雙向鏈表來管理這些空閑段。
數據段的結構也是關鍵。下面是數據段的總體結構:
+---------------+ | 數據頁 | +---------------+ | 數據頁 | +---------------+ | … | +---------------+ | 數據頁 | +---------------+
每個數據頁的大小可以通過系統變量innodb_page_size
進行配置。每個數據頁被進一步分成若干行。每行中包含一行數據(一條記錄)。
+---------------+ | 頭信息 | +---------------+ | 空閑地 | +---------------+ | 記錄數據1 | +---------------+ | 記錄數據2 | +---------------+ | … | +---------------+ | 記錄數據n | +---------------+ | Next指針 | +---------------+
每個記錄由兩個部分組成--頭信息和記錄數據。頭信息包含了該記錄的大小、刪除標志、版本號等信息。記錄數據則是實際的數據。
對于每個數據頁,還有一個指向下一頁數據頁的指針。這個指針的存在意味著MySQL在檢索較大的表時可以使用流式檢索方式(即按需獲取數據)。
上一篇css內聯樣式插入圖片
下一篇css內聯樣式不起作用