postgresql存图片字段类型_PostgreSQL让人着迷的多态性,另辟蹊径省时又省力
PostgreSQL 讓人著迷的地方,不在于他比某些數據庫的流行,也不在于比某些數據庫的高“貴”, 更不如某些數據庫的“簡單”。Postgresql 讓人無法自拔的是他的”多端變化”, 用開發的角度來說,叫多態性。
PG本身支持著太多的數據的類型充分體現了他的多態性,其中hstore數據類型,這是一種以鍵值為目的的數據存儲和提取的方式。在非結構化,半結構化數據橫行的今天,除了MONGODB 讓人“羨慕嫉妒恨”,以外能想到的好像也只有PG了,在支持json, josnb下的PG另類hstore數據類型是否多余,還是對多種應用提供了更良好的支持,的需要去check一下。
先建立一個POSTGRESQL 的hstore類型,是騾子,還是千里馬,的出來溜溜。
我們插入一條數據
insert into hstore_test (id,name,history) values (1,'postgresql','from => "IBM_Research",origination => "inges",time => "1970"')
可以看到與JSON 格式對比,hstore 在處理比較隨意的數據上,也是有點意思。
SELECT name, history->'from' as history FROM hstore_test WHERE history->'origination' = 'inges';
想必做到這里,如果是開發人員,會覺得有點意思,并且是騾子,是千里馬,反正不是“驢”。從開發人員的角度,這樣處理數據的方式,鍵值不要太隨便。
說道這時候,估計馬上會有人跳出來,這不科學呀,這怎么加索引,這怎么在大數據量下查詢,這就是“兒戲”。
普及一下POSTGERSQL 的“科學”, 因為POSTGRESQL 的索引類型從來不貧瘠, GIN GIST 索引類型,妥妥的支持這樣變態的類型,一個能讓%like% ,都能走索引,百萬數據毫秒出結果的數據庫,怕過誰。
那具體在數據庫的維度上,問題的關注點可能會轉移到,是否有什么案例可以說明這個數據庫的字段類型(或許叫字段類型表達不了,這個類型的內涵),在實際當中的意義。
首先有需要聲明
這個類型不是要代替或者與JSON 類型進行競爭,換句話hstore 類型是JSON,JSONB 的一種有益的補充,當你在產生某些數據的情況下,無法對其進行合理的二維表格以及關系的描述,或者你的數據不存在嵌套的關系,或需要處理復雜的嵌套關系。在這樣的情況下還有一些,非傳統的二維表格的需求。hstore 其實是一個很好的補充和支持。
那下面就舉一個例子:
例如我們有一個在線介紹家用汽車的網站,我們其中的每種汽車,其實都可能有很多熟悉
我們一邊建表,一邊來舉這個例子
create table car_info(
id serial primary key,
productor varchar(20),
car_name varchar(50),
product_time timestamp,
car_type smallint,
tag hstore
);
這里hstore存儲的數據其實是可以通過json + mongodb的方式來進行數據存儲,毋庸置疑的是MONGODB 在JSON處理上的能力,以及便捷性,尤其對待要求數據量巨大,并且對處理的速度要求很高的情況下,MONGODB可以說是JSON里面的唯一選項。
那這里POSTGRESQL的 hstore 扮演了一個什么樣的角色
1 在傳統數據庫表里面會涉及到一些,非結構化的數據
2 在某些需求不明確,但需要為了爭取市場,快速上線(比如這個tag ,其實可能需求方面會一直變化,某一種車的標簽會隨著市場,銷售情況,以及車商,等等諸多原因進行變化,而使用其他數據庫的任何字段類型來處理這樣的情況要不就是不合適,要不就是太麻煩)
3 所以postgresql 的 hstore 是在數據量較少,介于想使用MONGODB,但又沒有特別大的需求和數據量的情況下,需要靈活應對項目中的需求變動頻繁時的一個好的技術方法,來規避后期的頻繁改動表結構,字段長度,以及一些,讓需求,開發,運維都頭痛的后續工作。
所以POSTGRESQL 的 hstore 是一個在傳統數據庫中,非結構化,半結構化的良好的解決方案。
我們還可以在這個字段上加索引,并且方便的更新,或刪除數據,這些功能在其他的數據庫上是很難相信能夠做到的。
當然這個類型還有很多的功能,感興趣的可以去check 一下,也許會在某些項目上幫到你,快速的滿足需求,并且省時省力, 借用《我的前半生》,賀函風格的一句話, 作為一個DB的工作者, 你的職責是服務于你的公司,提供專業的,更高效的數據庫去為企業服務,加速程序開發速度,降低開發中程序員遇到的困難,并解決他,哪種數據庫不是重點,重點是解決問題。
總結
以上是生活随笔為你收集整理的postgresql存图片字段类型_PostgreSQL让人着迷的多态性,另辟蹊径省时又省力的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 强12的猪左有多少无视物攻
- 下一篇: DNF守护者祭坛机械牛那关困难怎么打啊,