天天看點

我對PostgreSQL 的模式的一點了解

PostgreSQL 的模式,我感覺是後來添加的概念。因為在實體存儲上,是:

base目錄下, 一個子目錄代表一個資料庫。然後再進去,就是一個檔案代表一個table了。

雖然邏輯上,是  資料庫 ->模式->表  但是實體結構确實 /資料庫/表 的形式。

那麼模式的資訊存儲在什麼地方呢?

作實驗如下:

先建立模式:

我對PostgreSQL 的模式的一點了解
我對PostgreSQL 的模式的一點了解

如果 這時候我們去看 PostgreSQL 的資料目錄,搜尋一番看看:

[作者:技術者高健@部落格園  mail: [email protected]]

此時,由于記憶體和資料檔案尚未同步,隻有xlog中才有我們剛剛建立的模式的資訊。

過一段時間或者關閉資料庫,再次來搜尋:

我們來看看這個 12649 和  12647 都是什麼東西:

我對PostgreSQL 的模式的一點了解
我對PostgreSQL 的模式的一點了解

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

再在模式下建立表來看看:

我對PostgreSQL 的模式的一點了解
我對PostgreSQL 的模式的一點了解

可以看到剛剛建好的表,其所對應的檔案是:24608, 而24608檔案剛建好,為空。更無法容納模式資訊。

是以,模式資訊和表的資訊是分别存放的。

再來進一步驗證一下:

我對PostgreSQL 的模式的一點了解
我對PostgreSQL 的模式的一點了解

<a></a>

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