postgre的優(yōu)勢
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
? ?pg功能比mysql多太多,也可以說是免費(fèi)數(shù)據(jù)庫里最接近oracle的。 單說mysql功能上,就沒法處理全模糊,因?yàn)闆]有全文索引,要模糊查詢就要上es,你別說阿里文檔里那啥左模糊右模糊的,你還能控制用戶輸入啥?是個(gè)模糊那就是全模糊。上了es就有多個(gè)庫數(shù)據(jù)同步的問題,處理不好又是一堆bug,平白增加維護(hù)成本。 其次還有啥mysql單表不能超過1000w,建議500w就分表。這又是個(gè)坑爹東西,說白了就是性能不行,oracle收購mysql后就故意不優(yōu)化的,逼著你用他家的oracle數(shù)據(jù)庫,我在公司里用oracle還真就沒這破事,單表幾千萬數(shù)據(jù)照樣跑,pg我本地試了下千萬數(shù)據(jù)select查詢性能也沒啥問題,mysql是真的和八股文里說的一樣,數(shù)據(jù)一到某個(gè)點(diǎn),B+樹到了第三層性能直線下降。 看過阿里開發(fā)手冊的就知道,阿里不允許mysql用超過2個(gè)的join,說白了就是join性能實(shí)在是差,我上家公司就有個(gè)服務(wù)用的mysql數(shù)據(jù)庫出報(bào)表,join超過3個(gè)表就必定慢sql,優(yōu)化起來又大改業(yè)務(wù),只能和甲方說后臺(tái)表數(shù)據(jù)不是實(shí)時(shí)的,做個(gè)定時(shí)任務(wù)多久更新一次。 ? ?還有mysql utf-8是個(gè)假的utf-8,要用utf-8-xxx,打開字符集utf-8開頭的編碼就四五個(gè),第一次用起來真的無語。 還有類型的支持,pg支持json和數(shù)組,對應(yīng)代碼里的對象和集合,這里又甩mysql一條街 ? ?而且就從歷史原因上看,mysql這數(shù)據(jù)庫明顯就是當(dāng)年阿里那邊給強(qiáng)行搞火的。因?yàn)楫?dāng)年阿里本來想用oracle,但人家獅子大開口給阿里整破防了,于是用的免費(fèi)的mysql。 至于功能上的劣勢就全靠程序員想方設(shè)法優(yōu)化,現(xiàn)在阿里自己研發(fā)出自己的oceanbase了,不想管mysql了,當(dāng)年那些mysql的奇淫技巧都成為八股文,被小公司拿來惡心面試者了,不知情的學(xué)生還在那使勁背使勁卷。 但同樣都是免費(fèi)的,pg誰用誰知道,是真的好用,就單說那個(gè)自帶的pgAdmin就相當(dāng)好用,ui好看還好操作。 轉(zhuǎn)載:https://www.zhihu.com/question/20010554/answer/1920648682283468590 該文章在 2025/8/14 16:53:07 編輯過
|
相關(guān)文章
正在查詢... |