PostgreSQL 的模式,我感覺是後來添加的概念。因為在實體存儲上,是:
base目錄下, 一個子目錄代表一個資料庫。然後再進去,就是一個檔案代表一個table了。
雖然邏輯上,是 資料庫 ->模式->表 但是實體結構确實 /資料庫/表 的形式。
那麼模式的資訊存儲在什麼地方呢?
作實驗如下:
先建立模式:


如果 這時候我們去看 PostgreSQL 的資料目錄,搜尋一番看看:
[作者:技術者高健@部落格園 mail: [email protected]]
此時,由于記憶體和資料檔案尚未同步,隻有xlog中才有我們剛剛建立的模式的資訊。
過一段時間或者關閉資料庫,再次來搜尋:
我們來看看這個 12649 和 12647 都是什麼東西:


就是說 很可能 模式相關的資訊,都放入到 pg_namespace 中了。我推測模式充其量也就是個邏輯分割。應該和權限劃分有關。
再在模式下建立表來看看:


可以看到剛剛建好的表,其所對應的檔案是:24608, 而24608檔案剛建好,為空。更無法容納模式資訊。
是以,模式資訊和表的資訊是分别存放的。
再來進一步驗證一下:


<a></a>
<a>本文轉自健哥的資料花園部落格園部落格,原文連結:http://www.cnblogs.com/gaojian/archive/2012/10/26/2740597.html,如需轉載請自行聯系原作者</a>