PostgreSQL與MySQL在技術(shù)層面的比較
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
這篇文章的目的是列舉一些例子,來說明在技術(shù)層面上為什么你可能更應(yīng)該使用PostgreSQL。但要注意:這個(gè)帖子只是說明一些“最好的”特點(diǎn),并不是一個(gè)完整的列表,然而,這些應(yīng)該足以讓人們做出決策。
PostgreSQL與MySQL / MariaDB:數(shù)據(jù)類型處理
在這里看到的是PostgreSQL錯(cuò)誤,因?yàn)樵噲D放入表中的數(shù)據(jù)并不符合列的數(shù)據(jù)類型,而MySQL / MariaDB則會(huì)悄悄地更改你的數(shù)據(jù)。是的,MySQL/MariaDB確實(shí)發(fā)出了警告,但過了一段時(shí)間后,表中的數(shù)據(jù)就不是最初的數(shù)據(jù)了。
為什么這很重要?假設(shè)你中了一百萬的彩票,但你最終只得到9999.99,只因?yàn)閿?shù)據(jù)變化極少,所以不幸的是根本沒有人注意到。你會(huì)生氣嗎?我會(huì)的。在這個(gè)例子中,PostgreSQL所顯示的操作是正確的,原因有很多:
最可能的原因是定義了列的方式。
警告不等同于錯(cuò)誤。
存儲(chǔ)數(shù)據(jù)不是 “容忍”——它更關(guān)注正確性。
如果你對(duì)著自己開槍,那也就沒有必要去警告你,因?yàn)椤澳悻F(xiàn)在可能已經(jīng)死了”——所以最好是在一開始就阻止這種事情的發(fā)生。
經(jīng)驗(yàn)總結(jié):PostgreSQL非常重視數(shù)據(jù)結(jié)構(gòu)。
PostgreSQL vs MySQL / MariaDB:謹(jǐn)慎對(duì)待現(xiàn)有數(shù)據(jù)
再強(qiáng)調(diào)一遍,MySQL / MariaDB是會(huì)更改你的數(shù)據(jù)的。請(qǐng)注意,插入到表中的原始值為1234.5678,但現(xiàn)在得到9.99。所以以后你會(huì)開始關(guān)注細(xì)微的差別了嗎?如果這是你的銀行賬戶?你會(huì)在乎嗎?如果這個(gè)數(shù)據(jù)庫只是為了保持運(yùn)行而不解決問題——那么你還會(huì)繼續(xù)相信它嗎,也許是時(shí)候需要找到一個(gè)替代品了。如果你的生活依賴于數(shù)據(jù),你會(huì)接受一張數(shù)據(jù)表悄無聲音的改變嗎?也許我太保守了,所以我不會(huì)接受。
PostgreSQL達(dá)到了我個(gè)人對(duì)數(shù)據(jù)庫的期望。它會(huì)報(bào)出錯(cuò)誤,并告訴我們數(shù)據(jù)是不能被更改的,因?yàn)閿?shù)據(jù)是需要被保護(hù)的。如果你想要更改表中的數(shù)據(jù)(以防新規(guī)則被違反),你必須明確地告訴PostgreSQL你想要什么:
在這種情況下,我們會(huì)告知PostgreSQL如何進(jìn)行處理數(shù)據(jù)。PostgreSQL并沒有很智能(也不像MySQL / MariaDB這樣的失敗),它不會(huì)去嘗試做一些有趣的事情——它只是做你想做的事情,以及做一些對(duì)你的數(shù)據(jù)有好處的事情。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
PostgreSQL與MySQL在技術(shù)層面的比較下載
相關(guān)電子資料下載
- 常用于緩存處理的機(jī)制總結(jié) 如何避免緩存雪崩問題? 24
- SpringBoot物理線程、虛擬線程、Webflux性能比較 37
- mysql經(jīng)典面試題及答案 63
- 聊聊即將到來的MySQL5.7停服事件 179
- 基于Prometheus開源的完整監(jiān)控解決方案 25
- 基于控制臺(tái)的通訊錄管理系統(tǒng)功能介紹 59
- 什么是數(shù)據(jù)庫?除了MySQL還有哪些數(shù)據(jù)庫? 36
- 超好用的開源IP地址管理系統(tǒng),告別傳統(tǒng)Excel統(tǒng)計(jì)方式! 146
- Innodb中的Btree實(shí)現(xiàn)(一)·引言&insert篇 65
- 怎么查看MySQL語句有沒有用到索引 190