有點理論上的問題。數據庫優化 - 編碼字段
只是想知道有沒有一種方法來優化數據字段?
說一個給定的字段,你只有3個可能的字符串,但這些字符串由於某種原因很長(比如說50個字符),聲明字段爲character_varying(50)看起來像浪費了很多磁盤空間,因爲數據本質上會適合在2位上。
我想你可以通過加入標籤表來解決問題,但有沒有另一種更正確的方法或數據庫能夠自動優化這種類型的列?
常見的數據庫能夠處理自己的那種優化嗎? 有沒有辦法在數據庫中聲明這種結構(類似於R語言因子概念)? Postgresql域結構是否有助於優化?
某些背景:
在你認爲這是一個愚蠢的問題之前。我一直在使用舊的遺留系統(90年代早期),其中一切都進行了大量編碼以節省內存和性能(例如,性將被編碼(1,2)而不是(男性,女性)以及許多不太明顯的編碼)。
現在我們正在將系統移動到更現代化的數據庫(postgresql),希望我們能夠使用可讀的「純文本」字段。
我並不是真的擔心實際的表現。更多的是一個理論問題。
作爲一個理論問題,這實際上是關於列約束。可以使用普通的CHECK約束或用戶定義的類型或DOMAIN。你也可以將這些域分割成單獨的表格(甚至可以使用類似EAV的模型) – wildplasser 2014-09-03 10:09:41