7.4.1.設計選擇
7.4.1. 設計選擇
MySQL將行數據和索引數據保存在不同的文件中。許多(幾乎所有)其它數據庫將行數據和索引數據混合保存在用一個文件中。我們認為MySQL 選擇對廣范圍的現代系統更好一些。
保存行數據的另一種方式是將每個列的信息保存在單獨的區域(例如SDBM和Focus)。這樣會對每個訪問多個列的查詢造成性能問題。因為當訪問多個列時退化得很快,我們認為該模型對一般數據庫不合適。
更常見的情形是索引和數據保存在一起(例如Oracle/Sybase)。在這種情況下,你可以在索引的葉級頁找到行的信息。該布局比較好的事情是在許多情況下,根據索引緩存得怎樣,可以保存一個硬盤讀取。該布局的不利之處表現在:
· 表掃描要慢得多,因為你必須通讀索引以獲得數據。
· 你不能只使用表來檢索查詢的數據。
· 你需要使用更多的空間,因為你必須從節點復制索引(你不能保存節點上的行)。
· 刪除要經過一段時間后才退化表(因為刪除時通常不會更新節點上的索引)。
· 只緩存索引數據會更加困難。