postgresql , schemaless , mongodb
使用mongodb時,并不需要先建表(collection),直接就可以往裡面寫,原因是collection本事就是固定的bson結構。
是以當使用者插入時,如果表不存在,建一個bson結構的colleciton即可。
而關系資料庫無法做到這一點,因為關系資料庫的表結構都是事先建構,并且在寫入資料時,是需要檢查對應的類型,限制的。
那麼有沒有辦法讓postgresql關系資料庫也實作類似mongo這種schemaless的表呢?
使用者通過調用函數,寫入資料。
在函數中處理并實作schemaless。
建立一個自動建表的函數,用于自動建立目标表。
建立一個插入資料的函數,使用動态sql,如果遇到表不存在的錯誤,則調用建表函數進行建表。
調用函數插入資料,不需要建表,會自動建立。
函數支援并發插入,不會互相影響。
由于使用了動态sql,性能略差。
使用綁定變量,性能如下。
損失11萬的qps,獲得schemaless的能力,要不要呢?
當然,如果是從核心層面來支援就更爽了,性能問題可能也能得到解決,比如。