自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle、MySQL和PostgreSQL的比較與選擇

數據庫 Oracle PostgreSQL
本文從優(yōu)化引擎、索引、審計、數據種類和對事物的扶持幾個方面來比較Oracle、MySQL和PostgreSQL數據庫,通過比較我們就能根據自己的需要去選擇合適的數據庫了。希望能對各位有所幫助。

本文從以下幾個方面來對Oracle、MySQLPostgreSQL進行比較,接下來我們就一一開始介紹。

混雜SQL(優(yōu)化引擎)

SQL是你與你的數據庫交互的基礎和最關鍵的措施,無論你抉擇哪個。這三個平臺也恰恰是從它開始懇摯離別。Oracle扶持極其混雜的查詢、幾乎不局限表的個數、所有的種類的連接和并合。固然Oracle有許多功能,然而它懇摯貴重的卻是它基于成本的優(yōu)化器,它能夠分析SQL、萬一可能的話舉行重寫和簡化、基于成本抉擇索引、定奪對表的壟斷和它之中的所有其它的各種功能。

閱讀MySQL的文檔,你會覺察對偏向于功能的描寫和供給約定義的細節(jié)使優(yōu)化器和功能調劑在任何平臺上都很混雜。MySQL法定的最大規(guī)模是在任何連接或在一個視圖中表的最大數目為61個。再順次的,我個人感受無論如何在任何一個利用中這么多表的一個查詢將是難以利用的,因而正如上面提到的,現在更實用的是優(yōu)化器而不是查詢最大表格式,等等。

8.x版本的Postgresql扶持所有SQL92規(guī)范,幾乎未曾任何局限。再順次的,我感受你會看到的一個數據庫優(yōu)于其它的數據庫的方面即便在優(yōu)化方面。混雜的查詢會變得混亂,并且查詢計劃是你在診斷功能瓶頸時的良好的朋友。

索引種類

索引技巧對于數據庫功能是至關重要的,而Oracle有許多的選項可供抉擇。有極其多的不同的索引種類,包括規(guī)范的二進制樹、轉換鍵的、基于功能的、常被訛謬利用的位圖索引,甚至還有索引表。隨著附帶項技巧的進展,數據庫管教員有了可用的供給索引的Oracle文本,它批準你搜查CLOB(字符大對象),并且Oracle Spatial供給用于基于位置的數據的索引。

在MySQL中,我們覺察有二進制樹、哈希、純文本和GIS索引(對于基于位置的數據)。還有集群索引,然而萬一說我在Oracle方面的經驗給我任何點撥的話,那么即便大多數利用等閑是不相干的。因而,大多數情形下我在Oracle、MySQL或Postgres利用中看到的只有二進制樹索引。另外,盡管像在MySQL中基于功能的索引是不可用的,然而他們能夠穿越創(chuàng)立另一個保留利用這個函數的數據的列來舉行模仿,然后增加一個引發(fā)器來將安裝它。

Postgresql供給二進制樹和哈希,還有R樹,和它自己定制的GiST索引種類,GiST索引種類批準利用用戶定義的種類和批準創(chuàng)立基于功能的索引zhengduan.com。Oracle供給了一個相仿的功能性種類,它的基于功能的索引能夠用于基于pl/sql的功能而不但是規(guī)范的預定義系統(tǒng)功能,例如你本來可能會利用的trunc、UPPER。要當心像這么的索引可能拜會起來極其緩慢,你可能在談論到要錄入或移除數據時,甚至不渴望聽到“慢”這個詞。

它確乎告終了,并且優(yōu)化器抉擇索引的措施優(yōu)于Oraclesh-ra.org。

審計

Oracle使你能夠對一個表或一個文件舉行審計,穿越審查索引工具。一旦批準了,你能夠審查對某一個表的插入、更新或剔除,可能登錄,或甚至是某一特定用戶的所有拜會。它有眾多選項,并且設置為可用的是極其容易的。

Postgresql也有這秉功能,并且它看起來和Oracle的一樣靈便和可搭配的。

另一方面MySQL看起來未曾供給這秉功能,然而你當然能夠創(chuàng)立你自己的存儲過程和引發(fā)器來做你想做的,并錄入相干的消息到數據表里,這只必需一點額外的工作。

數據種類

Oracle、MySQL和Postgresql都扶持最大到達4GB的大型的二進制和文本數據。我們所懂得并迷戀的所有的數據種類也是極其有用的,例如數字、字符和日期。每一個都在定然程度上供給一些定制數據種類,盡管我很少看到在利用中利用這些。

目前我要講的一件事是Postgresql和MySQL曾經超過了過去的基礎,無須擔心它們告終我們經常利用的一個良好的自增長列種類。Oracle的答辯是按次序來做這項工作更加管用,然而是靜態(tài)的。Oracle也未曾SET數據種類,這個數據種類很重要。它也未曾只有工夫的工夫數據種類,這個數據種類Postgresql和MySQL都有。然而你會覺察你能在這三個數據庫品平臺上做所有你想做的關于日期和工夫的壟斷,從對時區(qū)的壟斷到對間隔的處理,等等。

另外一個我迷戀Postgresql和MySQL的原因是它們扶持各種良好的數學數字種類,從smallint到decimal、real、double,等等。這些利用了大約的架構告終,與編程語言中可用的數據種類相相稱,例如C語言。

對事務的扶持

在數據庫領土,貼切的事務壟斷順從了acronym到ACID,這意味著原子性、統(tǒng)一性、隔絕性和永遠性。原子性含義是一個事務是一個全面的單元,所有都被提交或所有都被回滾。統(tǒng)一性含義是你從一個*VALID*事態(tài)遷移到另一個,例如你厲行貼切的局限來加深業(yè)務邏輯。隔絕性含義是一個事務不能看到另一個事務在做什么,直到它告終了(提交了)。永遠性含義是一旦提交了,這個改變即便永遠的,并且是遏止你硬盤失利的*至關重要的*。

關于這個問題我有一些事情要說,渴望能夠避免答辯。例如,Oracle在它的數據字典中的它本身的功能視圖就不是事務型的。其次,它們在那個環(huán)境中大約未曾必需。有眾多利用是這么的。我看過一個航空票務系統(tǒng),它必需定期升級和增加第二個服務器用于放置Oracle。他們看了這個軟件的所有相干的批準成本和大型裝備的硬件成本。然后他們回頭看這個利用。有些人準確的認識到在航空網站上90%的壟斷是博覽航班(只讀),而僅僅10%才是懇摯的購買機票。因而,他們發(fā)生了一組低成本的MySQL服務器用于博覽航班,而改變旅程哀求則提交給大型的Oracle服務器來厲行票務壟斷。多么好的一個結 合處理計劃!

是的,MySQL在事務方面的InnoDB表方面曾經走了很長一段路。這也批準以解釋為什么Oracle購買Innobase。一些人依舊感受MySQL只是一個用于LDAP或NFS的SQL接口。然而,MySQL確乎走了很長的路并且將繼續(xù)前行著。

在這點上Postgresql更全面,因而我會說你能看到的重要是和Oracle的功能方面的不同,這即便它的問題。

歸納

正如你在我們的數據庫平臺的多個局部中看到的,抉擇一個數據庫平臺時要琢磨許多事情。從功能全面性,到供給商扶持和共同扶持,到功能和優(yōu)化。在你富余打聽你在發(fā)生的利用和它懇摯必需什么之前,不要投資過多。到了最后你可能感受這些比擬籠統(tǒng),并且難以確定,然而有了一點發(fā)明性,精細思忖這個主題,并且具有一個好的開發(fā)環(huán)境,你就該當能夠得出一個成本高效并壯大的處理計劃來。

關于Oracle、MySQL和PostgreSQL的比較介紹這么多吧,如果您有不同的見解,也歡迎您與我們分享。

【編輯推薦】

  1. Oracle跟蹤文件分析工具TKPROF使用簡介
  2. 如何配置Oracle 10g oem中的主機身份證明
  3. ASP通過Oracle Object for OLE對Oracle查詢
  4. 環(huán)境變量導致ASP.Net無法連接Oracle的一個案例
  5. PLSQL Developer8連接Oracle 10g X64版報錯的解決
責任編輯:趙鵬 來源: 網易博客
相關推薦

2020-09-03 11:35:22

SQLiteMySQLPostgreSQL

2011-07-14 09:48:13

Oracle數據庫

2024-02-21 23:45:48

2024-02-19 00:00:00

PostgreSQLMySQL應用程序

2010-11-18 15:46:41

Oracle Deco

2023-09-15 14:37:55

2010-04-30 11:41:39

Oracle常用函數

2020-10-30 12:41:14

PostgreSQL數據庫MySQL

2010-09-07 08:35:40

DB2常用函數

2018-01-15 16:57:18

MySQLOraclePostgreSQL

2010-05-26 10:15:11

MySQL數據庫

2017-03-22 09:25:26

MySQLPostgreSQL對比

2009-04-15 17:03:15

OracleSQL Server事務處理

2011-05-17 10:49:55

OracleSQL Server

2009-05-18 13:56:48

MySQLdatetimetimestamp

2018-04-03 10:33:15

大數據

2017-09-06 17:05:54

大數據處理流程處理框架

2013-09-30 10:07:40

SAP

2025-02-28 00:03:00

2024-10-14 17:24:32

點贊
收藏

51CTO技術棧公眾號