真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

postgresql前十的簡(jiǎn)單介紹

什么數(shù)據(jù)庫(kù)比較熱門(mén)?

總體來(lái)說(shuō),主流數(shù)據(jù)庫(kù)并不存在明確的好壞之分,每一種數(shù)據(jù)庫(kù)都有各自的優(yōu)缺點(diǎn),最主要還是看它是否能夠滿足您的需求。

創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的防城港網(wǎng)站建設(shè)公司,防城港接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行防城港網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

總的來(lái)說(shuō),選擇數(shù)據(jù)庫(kù)可以從以下角度考慮:

從個(gè)人角度出發(fā)的話,如果是以學(xué)習(xí)和小型業(yè)務(wù)需求為主,推薦使用MySQL,它的優(yōu)勢(shì)在于:

成本(免費(fèi))

自由(完全開(kāi)源,適用多個(gè)場(chǎng)景)

性能(體積小但速度快)

這三點(diǎn)決定了MySQL數(shù)據(jù)庫(kù)的超高性價(jià)比。并且目前有不少主流公司仍然青睞MySQL,大名鼎鼎的Fackbook就依然在延續(xù)MySQL的使用。

2. 如果是企業(yè)角度出發(fā),主流的大型數(shù)據(jù)庫(kù)如Oracle、Sql Server...以及近些年來(lái)大數(shù)據(jù)領(lǐng)域十分火熱的非關(guān)系型數(shù)據(jù)庫(kù),例如Redis、HBse等等,都可以作為考慮的對(duì)象。

接下來(lái)具體列舉一些常用數(shù)據(jù)庫(kù)的優(yōu)缺點(diǎn),希望能為大家提供參考:

MySQL:

優(yōu)勢(shì):

MySQL是開(kāi)放源代碼的數(shù)據(jù)庫(kù),任何人都可以獲得該數(shù)據(jù)庫(kù)的源代碼。

MySQL能夠?qū)崿F(xiàn)跨平臺(tái)操作,可以在Windows、UNIX、Linux和Mac OS等操作系統(tǒng)上運(yùn)行。

MySQL數(shù)據(jù)庫(kù)是一款自由軟件,大部分應(yīng)用場(chǎng)景下都是免費(fèi)使用。

MySQL功能強(qiáng)大且使用方便,社區(qū)生態(tài)繁榮,有諸多學(xué)習(xí)資料。

缺點(diǎn):規(guī)模小,功能有限。

SQL Server

高度可擴(kuò)展:可以從單一的筆記本電腦上運(yùn)行任何東西或以高倍云服務(wù)器網(wǎng)絡(luò)運(yùn)行,或在兩者之間任何東西。

“雖然說(shuō)是“任何東西”,但是仍然要滿足相關(guān)的軟件和硬件的要求“

生態(tài)鏈廣:具有內(nèi)置的商務(wù)智能工具,以及一系列的分析和報(bào)告工具,可以創(chuàng)建數(shù)據(jù)庫(kù)、備份、復(fù)制,帶來(lái)了更好的安全性。

Oracle

Oracle數(shù)據(jù)庫(kù)系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),具有以下特點(diǎn):

可移植性好(在各類(lèi)大、中、小、微機(jī)環(huán)境中都適用)

使用方便、

功能強(qiáng)

因此,Oracle是一種高效率、可靠性好的、適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)解決方案。

DB2

DB2是IBM開(kāi)發(fā)的一種大型關(guān)系型數(shù)據(jù)庫(kù)平臺(tái)。它支持多用戶或應(yīng)用程序在同一條SQL 語(yǔ)句中查詢不同database甚至不同DBMS中的數(shù)據(jù)。它的應(yīng)用特點(diǎn)如下:

支持面向?qū)ο蟮木幊蹋篸b2支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如無(wú)結(jié)構(gòu)文本對(duì)象,可以對(duì)無(wú)結(jié)構(gòu)文本對(duì)象進(jìn)行布爾匹配、最接近匹配和任意匹配等搜索。可以建立用戶數(shù)據(jù)類(lèi)型和用戶自定義函數(shù)。

支持多媒體應(yīng)用程序:db2支持大二分對(duì)象(blob),允許在數(shù)據(jù)庫(kù)中存取二進(jìn)制大對(duì)象和文本大對(duì)象。其中,二進(jìn)制大對(duì)象可以用來(lái)存儲(chǔ)多媒體對(duì)象。

具有良好的備份和恢復(fù)能力

支持存儲(chǔ)過(guò)程和觸發(fā)器,用戶可以在建表時(shí)顯示的定義復(fù)雜的完整性規(guī)則

支持異構(gòu)分布式數(shù)據(jù)庫(kù)訪問(wèn),支持?jǐn)?shù)據(jù)復(fù)制

PostgreSQL

PostgreSQL 是一個(gè)免費(fèi)的對(duì)象-關(guān)系數(shù)據(jù)庫(kù)服務(wù)器(ORDBMS),它的 Slogan 是 “世界上最先進(jìn)的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)”。

PostgreSQL具有如下特征:

函數(shù):通過(guò)函數(shù),可以在數(shù)據(jù)庫(kù)服務(wù)器端執(zhí)行指令程序。

索引:用戶可以自定義索引方法,或使用內(nèi)置的 B 樹(shù),哈希表與 GiST 索引。

觸發(fā)器:觸發(fā)器是由SQL語(yǔ)句查詢所觸發(fā)的事件。如:一個(gè)INSERT語(yǔ)句可能觸發(fā)一個(gè)檢查數(shù)據(jù)完整性的觸發(fā)器。觸發(fā)器通常由INSERT或UPDATE語(yǔ)句觸發(fā)。 多版本并發(fā)控制:PostgreSQL使用多版本并發(fā)控制(MVCC,Multiversion concurrency control)系統(tǒng)進(jìn)行并發(fā)控制,該系統(tǒng)向每個(gè)用戶提供了一個(gè)數(shù)據(jù)庫(kù)的”快照”,用戶在事務(wù)內(nèi)所作的每個(gè)修改,對(duì)于其他的用戶都不可見(jiàn),直到該事務(wù)成功提交。

規(guī)則:規(guī)則(RULE)允許一個(gè)查詢能被重寫(xiě),通常用來(lái)實(shí)現(xiàn)對(duì)視圖(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、刪除(DELETE)。

數(shù)據(jù)類(lèi)型:包括文本、任意精度的數(shù)值數(shù)組、JSON 數(shù)據(jù)、枚舉類(lèi)型、XML 數(shù)據(jù)等。

全文檢索:通過(guò) Tsearch2 或 OpenFTS,8.3版本中內(nèi)嵌 Tsearch2。

NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 數(shù)據(jù)庫(kù)的外部數(shù)據(jù)包裝器。

數(shù)據(jù)倉(cāng)庫(kù):能平滑遷移至同屬 PostgreSQL 生態(tài)的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 進(jìn)行 ETL

在PostgreSQL中,查詢30分鐘前的數(shù)據(jù)的SQL怎樣寫(xiě)

select * from 表名 where 時(shí)間列名 in ( select max(時(shí)間列名) from 表名 union all select min(時(shí)間列名) from 表名 )

postgresql是什么數(shù)據(jù)庫(kù)?請(qǐng)?jiān)斀庖幌?,謝謝

PostgreSQL 是一種非常復(fù)雜的對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS), 也是目前功能最強(qiáng)大,特性最豐富和最復(fù)雜的自由軟件數(shù)據(jù)庫(kù)系統(tǒng)。有些特性甚至連商業(yè)數(shù)據(jù)庫(kù)都不具備。這個(gè)起源于伯克利(BSD)的數(shù)據(jù)庫(kù)研究計(jì)劃目前已經(jīng)衍生成一項(xiàng)國(guó)際開(kāi)發(fā)項(xiàng)目, 并且有非常廣泛的用戶。

PostgreSQL 可以說(shuō)是最富特色的自由數(shù)據(jù)庫(kù)管理系統(tǒng),甚至我們也可以說(shuō)是最強(qiáng)大的自由軟件數(shù)據(jù)庫(kù)管理系統(tǒng)。事實(shí)上, PostgreSQL 的特性覆蓋了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以說(shuō)是目前世界上最豐富的數(shù)據(jù)類(lèi)型的支持,其中有些數(shù)據(jù)類(lèi)型可以說(shuō)連商業(yè)數(shù)據(jù)庫(kù)都不具備, 比如 IP 類(lèi)型和幾何類(lèi)型等;其次,PostgreSQL 是全功能的自由軟件數(shù)據(jù)庫(kù),很長(zhǎng)時(shí)間以來(lái),PostgreSQL 是唯一支持事務(wù)、子查詢、多版本并行控制系統(tǒng)、數(shù)據(jù)完整性檢查等特性的唯一的一種自由軟件的數(shù)據(jù)庫(kù)管理系統(tǒng)。直到最近才有 Inprise 的 InterBase 以及 SAP 等廠商將其原先專(zhuān)有軟件開(kāi)放為自由軟件之后才打破了這個(gè)唯一。

數(shù)據(jù)庫(kù)軟件 有哪些?。?/h2>

常用數(shù)據(jù)庫(kù)

1. IBM 的DB2

作為關(guān)系數(shù)據(jù)庫(kù)領(lǐng)域的開(kāi)拓者和領(lǐng)航人,IBM在1997年完成了System R系統(tǒng)的原型,1980年開(kāi)始提供集成的數(shù)據(jù)庫(kù)服務(wù)器—— System/38,隨后是SQL/DSforVSE和VM,其初始版本與SystemR研究原型密切相關(guān)。DB2 forMVSV1 在1983年推出。該版本的目標(biāo)是提供這一新方案所承諾的簡(jiǎn)單性,數(shù)據(jù)不相關(guān)性和用戶生產(chǎn)率。1988年DB2 for MVS 提供了強(qiáng)大的在線事務(wù)處理(OLTP)支持,1989 年和1993 年分別以遠(yuǎn)程工作單元和分布式工作單元實(shí)現(xiàn)了分布式數(shù)據(jù)庫(kù)支持。最近推出的DB2 Universal Database 6.1則是通用數(shù)據(jù)庫(kù)的典范,是第一個(gè)具備網(wǎng)上功能的多媒體關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),支持包括Linux在內(nèi)的一系列平臺(tái)。

2. Oracle

Oracle 前身叫SDL,由Larry Ellison 和另兩個(gè)編程人員在1977創(chuàng)辦,他們開(kāi)發(fā)了自己的拳頭產(chǎn)品,在市場(chǎng)上大量銷(xiāo)售,1979 年,Oracle公司引入了第一個(gè)商用SQL 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。Oracle公司是最早開(kāi)發(fā)關(guān)系數(shù)據(jù)庫(kù)的廠商之一,其產(chǎn)品支持最廣泛的操作系統(tǒng)平臺(tái)。目前Oracle關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品的市場(chǎng)占有率名列前茅。

3. Informix

Informix在1980年成立,目的是為Unix等開(kāi)放操作系統(tǒng)提供專(zhuān)業(yè)的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品。公司的名稱Informix便是取自Information 和Unix的結(jié)合。Informix第一個(gè)真正支持SQL語(yǔ)言的關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品是Informix SE(StandardEngine)。InformixSE是在當(dāng)時(shí)的微機(jī)Unix環(huán)境下主要的數(shù)據(jù)庫(kù)產(chǎn)品。它也是第一個(gè)被移植到Linux上的商業(yè)數(shù)據(jù)庫(kù)產(chǎn)品。

4. Sybase

Sybase公司成立于1984年,公司名稱“Sybase”取自“system”和 “database” 相結(jié)合的含義。Sybase公司的創(chuàng)始人之一Bob Epstein 是Ingres 大學(xué)版(與System/R同時(shí)期的關(guān)系數(shù)據(jù)庫(kù)模型產(chǎn)品)的主要設(shè)計(jì)人員。公司的第一個(gè)關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)的思想,并率先在Sybase SQLServer 中實(shí)現(xiàn)。

5. SQL Server

1987 年,微軟和 IBM合作開(kāi)發(fā)完成OS/2,IBM 在其銷(xiāo)售的OS/2 ExtendedEdition 系統(tǒng)中綁定了OS/2Database Manager,而微軟產(chǎn)品線中尚缺少數(shù)據(jù)庫(kù)產(chǎn)品。為此,微軟將目光投向Sybase,同Sybase 簽訂了合作協(xié)議,使用Sybase的技術(shù)開(kāi)發(fā)基于OS/2平臺(tái)的關(guān)系型數(shù)據(jù)庫(kù)。1989年,微軟發(fā)布了SQL Server 1.0 版。

6. PostgreSQL

PostgreSQL 是一種特性非常齊全的自由軟件的對(duì)象——關(guān)系性數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS),它的很多特性是當(dāng)今許多商業(yè)數(shù)據(jù)庫(kù)的前身。PostgreSQL最早開(kāi)始于BSD的Ingres項(xiàng)目。PostgreSQL 的特性覆蓋了SQL-2/SQL-92和SQL-3。首先,它包括了可以說(shuō)是目前世界上最豐富的數(shù)據(jù)類(lèi)型的支持;其次,目前PostgreSQL 是唯一支持事務(wù)、子查詢、多版本并行控制系統(tǒng)、數(shù)據(jù)完整性檢查等特性的唯一的一種自由軟件的數(shù)據(jù)庫(kù)管理系統(tǒng).

7.mySQL

mySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。在2008年1月16號(hào)被Sun公司收購(gòu)。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。MySQL的官方網(wǎng)站的網(wǎng)址是:

數(shù)據(jù)庫(kù)軟件都有那些?

企業(yè)里常用的數(shù)據(jù)庫(kù)軟件有Mysql、PostgreSQL、MicrosoftSQLServer、Oracle數(shù)據(jù)庫(kù)、MongoDB。

1、Mysql。

MySQL原本是一個(gè)開(kāi)放源碼的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),原開(kāi)發(fā)者為瑞典的MySQLAB公司,該公司于2008年被升陽(yáng)微系統(tǒng)(SunMicrosystems)收購(gòu)。2009年,甲骨文公司(Oracle)收購(gòu)升陽(yáng)微系統(tǒng)公司,MySQL成為Oracle旗下產(chǎn)品。

MySQL由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開(kāi)源數(shù)據(jù)庫(kù),因此被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。隨著MySQL的不斷成熟,它也逐漸用于更多大規(guī)模網(wǎng)站和應(yīng)用。

2、PostgreSQL。

PostgreSQL可以說(shuō)是目前功能最強(qiáng)大、特性最豐富和結(jié)構(gòu)最復(fù)雜的開(kāi)源數(shù)據(jù)庫(kù)管理系統(tǒng),其中有些特性甚至連商業(yè)數(shù)據(jù)庫(kù)都不具備。這個(gè)起源于加州大學(xué)伯克利分校的數(shù)據(jù)庫(kù),現(xiàn)已成為一項(xiàng)國(guó)際開(kāi)發(fā)項(xiàng)目,并且擁有廣泛的用戶群,尤其是在海外,目前國(guó)內(nèi)使用者也越來(lái)越多。

PostgreSQL基本上算是見(jiàn)證了整個(gè)數(shù)據(jù)庫(kù)理論和技術(shù)的發(fā)展歷程,由UCB計(jì)算機(jī)教授MichaelStonebraker于1986年創(chuàng)建。在此之前,Stonebraker教授主導(dǎo)了關(guān)系數(shù)據(jù)庫(kù)Ingres研究項(xiàng)目,88年,提出了Postgres的第一個(gè)原型設(shè)計(jì)。

MySQL號(hào)稱是使用最廣泛的開(kāi)源數(shù)據(jù)庫(kù),而PG則被稱為功能最強(qiáng)大的開(kāi)源數(shù)據(jù)庫(kù)。

3、MicrosoftSQLServer。

SQLServer是Microsoft開(kāi)發(fā)的一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),現(xiàn)在是世界上最為常用的數(shù)據(jù)庫(kù)。SQLServer?現(xiàn)在是包括內(nèi)置的商務(wù)智能工具,以及一系列的分析和報(bào)告工具,可以創(chuàng)建數(shù)據(jù)庫(kù)、備份、復(fù)制、安全性更好以及更多。

SQLServer是一個(gè)高度可擴(kuò)展的產(chǎn)品,可以從一個(gè)單一的筆記本電腦上運(yùn)行的任何東西或以高倍云服務(wù)器網(wǎng)絡(luò),或在兩者之間任何東西。雖然說(shuō)是“任何東西”,但是仍然要滿足相關(guān)的軟件和硬件的要求。

4、Oracle數(shù)據(jù)庫(kù)。

Oracle數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)Oracle(甲骨文)公司提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(Client/Server,C/S)或?yàn)g覽器/服務(wù)器(Browser/Server,B/S)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。

Oracle數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。

5、MongoDB

mongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的開(kāi)源產(chǎn)品,是最接近于關(guān)系型數(shù)據(jù)庫(kù)的NoSQL數(shù)據(jù)庫(kù)。它在輕量級(jí)JSON交換基礎(chǔ)之上進(jìn)行了擴(kuò)展,即稱為BSON的方式來(lái)描述其無(wú)結(jié)構(gòu)化的數(shù)據(jù)類(lèi)型。盡管如此它同樣可以存儲(chǔ)較為復(fù)雜的數(shù)據(jù)類(lèi)型。

參考資料來(lái)源:百度百科——Mysql

參考資料來(lái)源:百度百科——PostgreSQL

參考資料來(lái)源:百度百科——MicrosoftSQLServer

參考資料來(lái)源:百度百科——Oracle數(shù)據(jù)庫(kù)

參考資料來(lái)源:百度百科——MongoDB

有用PostgreSQL的嗎,哪個(gè)package好用一些

特性 MySQL PostgreSQL

實(shí)例 通過(guò)執(zhí)行 MySQL 命令(mysqld)啟動(dòng)實(shí)例。一個(gè)實(shí)例可以管理一個(gè)或多個(gè)數(shù)據(jù)庫(kù)。一臺(tái)服務(wù)器可以運(yùn)行多個(gè) mysqld 實(shí)例。一個(gè)實(shí)例管理器可以監(jiān)視 mysqld 的各個(gè)實(shí)例。

通過(guò)執(zhí)行 Postmaster 進(jìn)程(pg_ctl)啟動(dòng)實(shí)例。一個(gè)實(shí)例可以管理一個(gè)或多個(gè)數(shù)據(jù)庫(kù),這些數(shù)據(jù)庫(kù)組成一個(gè)集群。集群是磁盤(pán)上的一個(gè)區(qū)域,這個(gè)區(qū)域在安裝時(shí)初始化并由一個(gè)目錄組成,所有數(shù)據(jù)都存儲(chǔ)在這個(gè)目錄中。使用 initdb 創(chuàng)建第一個(gè)數(shù)據(jù)庫(kù)。一臺(tái)機(jī)器上可以啟動(dòng)多個(gè)實(shí)例。

數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)是命名的對(duì)象集合,是與實(shí)例中的其他數(shù)據(jù)庫(kù)分離的實(shí)體。一個(gè) MySQL 實(shí)例中的所有數(shù)據(jù)庫(kù)共享同一個(gè)系統(tǒng)編目。 數(shù)據(jù)庫(kù)是命名的對(duì)象集合,每個(gè)數(shù)據(jù)庫(kù)是與其他數(shù)據(jù)庫(kù)分離的實(shí)體。每個(gè)數(shù)據(jù)庫(kù)有自己的系統(tǒng)編目,但是所有數(shù)據(jù)庫(kù)共享 pg_databases。

數(shù)據(jù)緩沖區(qū) 通過(guò) innodb_buffer_pool_size 配置參數(shù)設(shè)置數(shù)據(jù)緩沖區(qū)。這個(gè)參數(shù)是內(nèi)存緩沖區(qū)的字節(jié)數(shù),InnoDB 使用這個(gè)緩沖區(qū)來(lái)緩存表的數(shù)據(jù)和索引。在專(zhuān)用的數(shù)據(jù)庫(kù)服務(wù)器上,這個(gè)參數(shù)最高可以設(shè)置為機(jī)器物理內(nèi)存量的 80%。 Shared_buffers 緩存。在默認(rèn)情況下分配 64 個(gè)緩沖區(qū)。默認(rèn)的塊大小是 8K??梢酝ㄟ^(guò)設(shè)置 postgresql.conf 文件中的 shared_buffers 參數(shù)來(lái)更新緩沖區(qū)緩存。

數(shù)據(jù)庫(kù)連接 客戶機(jī)使用 CONNECT 或 USE 語(yǔ)句連接數(shù)據(jù)庫(kù),這時(shí)要指定數(shù)據(jù)庫(kù)名,還可以指定用戶 id 和密碼。使用角色管理數(shù)據(jù)庫(kù)中的用戶和用戶組。 客戶機(jī)使用 connect 語(yǔ)句連接數(shù)據(jù)庫(kù),這時(shí)要指定數(shù)據(jù)庫(kù)名,還可以指定用戶 id 和密碼。使用角色管理數(shù)據(jù)庫(kù)中的用戶和用戶組。

身份驗(yàn)證 MySQL 在數(shù)據(jù)庫(kù)級(jí)管理身份驗(yàn)證。 基本只支持密碼認(rèn)證。 PostgreSQL 支持豐富的認(rèn)證方法:信任認(rèn)證、口令認(rèn)證、Kerberos 認(rèn)證、基于 Ident 的認(rèn)證、LDAP 認(rèn)證、PAM 認(rèn)證

加密 可以在表級(jí)指定密碼來(lái)對(duì)數(shù)據(jù)進(jìn)行加密。還可以使用 AES_ENCRYPT 和 AES_DECRYPT 函數(shù)對(duì)列數(shù)據(jù)進(jìn)行加密和解密??梢酝ㄟ^(guò) SSL 連接實(shí)現(xiàn)網(wǎng)絡(luò)加密。 可以使用 pgcrypto 庫(kù)中的函數(shù)對(duì)列進(jìn)行加密/解密。可以通過(guò) SSL 連接實(shí)現(xiàn)網(wǎng)絡(luò)加密。

審計(jì) 可以對(duì) querylog 執(zhí)行 grep。 可以在表上使用 PL/pgSQL 觸發(fā)器來(lái)進(jìn)行審計(jì)。

查詢解釋 使用 EXPLAIN 命令查看查詢的解釋計(jì)劃。 使用 EXPLAIN 命令查看查詢的解釋計(jì)劃。

備份、恢復(fù)和日志 InnoDB 使用寫(xiě)前(write-ahead)日志記錄。支持在線和離線完全備份以及崩潰和事務(wù)恢復(fù)。需要第三方軟件才能支持熱備份。 在數(shù)據(jù)目錄的一個(gè)子目錄中維護(hù)寫(xiě)前日志。支持在線和離線完全備份以及崩潰、時(shí)間點(diǎn)和事務(wù)恢復(fù)。 可以支持熱備份。

JDBC 驅(qū)動(dòng)程序 可以從 參考資料 下載 JDBC 驅(qū)動(dòng)程序。 可以從 參考資料 下載 JDBC 驅(qū)動(dòng)程序。

表類(lèi)型 取決于存儲(chǔ)引擎。例如,NDB 存儲(chǔ)引擎支持分區(qū)表,內(nèi)存引擎支持內(nèi)存表。 支持臨時(shí)表、常規(guī)表以及范圍和列表類(lèi)型的分區(qū)表。不支持哈希分區(qū)表。 由于PostgreSQL的表分區(qū)是通過(guò)表繼承和規(guī)則系統(tǒng)完成了,所以可以實(shí)現(xiàn)更復(fù)雜的分區(qū)方式。

索引類(lèi)型 取決于存儲(chǔ)引擎。MyISAM:BTREE,InnoDB:BTREE。 支持 B-樹(shù)、哈希、R-樹(shù)和 Gist 索引。

約束 支持主鍵、外鍵、惟一和非空約束。對(duì)檢查約束進(jìn)行解析,但是不強(qiáng)制實(shí)施。 支持主鍵、外鍵、惟一、非空和檢查約束。

存儲(chǔ)過(guò)程和用戶定義函數(shù) 支持 CREATE PROCEDURE 和 CREATE FUNCTION 語(yǔ)句。存儲(chǔ)過(guò)程可以用 SQL 和 C++ 編寫(xiě)。用戶定義函數(shù)可以用 SQL、C 和 C++ 編寫(xiě)。 沒(méi)有單獨(dú)的存儲(chǔ)過(guò)程,都是通過(guò)函數(shù)實(shí)現(xiàn)的。用戶定義函數(shù)可以用 PL/pgSQL(專(zhuān)用的過(guò)程語(yǔ)言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 編寫(xiě)。

觸發(fā)器 支持行前觸發(fā)器、行后觸發(fā)器和語(yǔ)句觸發(fā)器,觸發(fā)器語(yǔ)句用過(guò)程語(yǔ)言復(fù)合語(yǔ)句編寫(xiě)。 支持行前觸發(fā)器、行后觸發(fā)器和語(yǔ)句觸發(fā)器,觸發(fā)器過(guò)程用 C 編寫(xiě)。

系統(tǒng)配置文件 my.conf Postgresql.conf

數(shù)據(jù)庫(kù)配置 my.conf Postgresql.conf

客戶機(jī)連接文件 my.conf pg_hba.conf

XML 支持 有限的 XML 支持。 有限的 XML 支持。

數(shù)據(jù)訪問(wèn)和管理服務(wù)器 OPTIMIZE TABLE —— 回收未使用的空間并消除數(shù)據(jù)文件的碎片

myisamchk -analyze —— 更新查詢優(yōu)化器所使用的統(tǒng)計(jì)數(shù)據(jù)(MyISAM 存儲(chǔ)引擎)

mysql —— 命令行工具

MySQL Administrator —— 客戶機(jī) GUI 工具 Vacuum —— 回收未使用的空間

Analyze —— 更新查詢優(yōu)化器所使用的統(tǒng)計(jì)數(shù)據(jù)

psql —— 命令行工具

pgAdmin —— 客戶機(jī) GUI 工具

并發(fā)控制 支持表級(jí)和行級(jí)鎖。InnoDB 存儲(chǔ)引擎支持 READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和 SERIALIZABLE。使用 SET TRANSACTION ISOLATION LEVEL 語(yǔ)句在事務(wù)級(jí)設(shè)置隔離級(jí)別。 支持表級(jí)和行級(jí)鎖。支持的 ANSI 隔離級(jí)別是 Read Committed(默認(rèn) —— 能看到查詢啟動(dòng)時(shí)數(shù)據(jù)庫(kù)的快照)和 Serialization(與 Repeatable Read 相似 —— 只能看到在事務(wù)啟動(dòng)之前提交的結(jié)果)。使用 SET TRANSACTION 語(yǔ)句在事務(wù)級(jí)設(shè)置隔離級(jí)別。使用 SET SESSION 在會(huì)話級(jí)進(jìn)行設(shè)置。

MySQL相對(duì)于PostgreSQL的劣勢(shì):

MySQL

PostgreSQL

最重要的引擎InnoDB很早就由Oracle公司控制。目前整個(gè)MySQL數(shù)據(jù)庫(kù)都由Oracle控制。

BSD協(xié)議,沒(méi)有被大公司壟斷。

對(duì)復(fù)雜查詢的處理較弱,查詢優(yōu)化器不夠成熟

很強(qiáng)大的查詢優(yōu)化器,支持很復(fù)雜的查詢處理。

只有一種表連接類(lèi)型:嵌套循環(huán)連接(nested-loop),不支持排序-合并連接(sort-merge join)與散列連接(hash join)。

都支持

性能優(yōu)化工具與度量信息不足

提供了一些性能視圖,可以方便的看到發(fā)生在一個(gè)表和索引上的select、delete、update、insert統(tǒng)計(jì)信息,也可以看到cache命中率。網(wǎng)上有一個(gè)開(kāi)源的pgstatspack工具。

InnoDB的表和索引都是按相同的方式存儲(chǔ)。也就是說(shuō)表都是索引組織表。這一般要求主鍵不能太長(zhǎng)而且插入時(shí)的主鍵最好是按順序遞增,否則對(duì)性能有很大影響。

不存在這個(gè)問(wèn)題。

大部分查詢只能使用表上的單一索引;在某些情況下,會(huì)存在使用多個(gè)索引的查詢,但是查詢優(yōu)化器通常會(huì)低估其成本,它們常常比表掃描還要慢。

不存在這個(gè)問(wèn)題

表增加列,基本上是重建表和索引,會(huì)花很長(zhǎng)時(shí)間。

表增加列,只是在數(shù)據(jù)字典中增加表定義,不會(huì)重建表

存儲(chǔ)過(guò)程與觸發(fā)器的功能有限??捎脕?lái)編寫(xiě)存儲(chǔ)過(guò)程、觸發(fā)器、計(jì)劃事件以及存儲(chǔ)函數(shù)的語(yǔ)言功能較弱

除支持pl/pgsql寫(xiě)存儲(chǔ)過(guò)程,還支持perl、python、Tcl類(lèi)型的存儲(chǔ)過(guò)程:pl/perl,pl/python,pl/tcl。

也支持用C語(yǔ)言寫(xiě)存儲(chǔ)過(guò)程。

不支持Sequence。

支持

不支持函數(shù)索引,只能在創(chuàng)建基于具體列的索引。

不支持物化視圖。

支持函數(shù)索引,同時(shí)還支持部分?jǐn)?shù)據(jù)索引,通過(guò)規(guī)則系統(tǒng)可以實(shí)現(xiàn)物化視圖的功能。

執(zhí)行計(jì)劃并不是全局共享的, 僅僅在連接內(nèi)部是共享的。

執(zhí)行計(jì)劃共享

MySQL支持的SQL語(yǔ)法(ANSI SQL標(biāo)準(zhǔn))的很小一部分。不支持遞歸查詢、通用表表達(dá)式(Oracle的with 語(yǔ)句)或者窗口函數(shù)(分析函數(shù))。

都 支持

不支持用戶自定義類(lèi)型或域(domain)

支持。

對(duì)于時(shí)間、日期、間隔等時(shí)間類(lèi)型沒(méi)有秒以下級(jí)別的存儲(chǔ)類(lèi)型

可以精確到秒以下。

身份驗(yàn)證功能是完全內(nèi)置的,不支持操作系統(tǒng)認(rèn)證、PAM認(rèn)證,不支持LDAP以及其它類(lèi)似的外部身份驗(yàn)證功能。

支持OS認(rèn)證、Kerberos 認(rèn)證 、Ident 的認(rèn)證、LDAP 認(rèn)證、PAM 認(rèn)證

不支持database link。有一種叫做Federated的存儲(chǔ)引擎可以作為一個(gè)中轉(zhuǎn)將查詢語(yǔ)句傳遞到遠(yuǎn)程服務(wù)器的一個(gè)表上,不過(guò),它功能很粗糙并且漏洞很多

有dblink,同時(shí)還有一個(gè)dbi-link的東西,可以連接到oracle和mysql上。

Mysql Cluster可能與你的想象有較大差異。開(kāi)源的cluster軟件較少。

復(fù)制(Replication)功能是異步的,并且有很大的局限性.例如,它是單線程的(single-threaded),因此一個(gè)處理能力更強(qiáng)的Slave的恢復(fù)速度也很難跟上處理能力相對(duì)較慢的Master.

有豐富的開(kāi)源cluster軟件支持。

explain看執(zhí)行計(jì)劃的結(jié)果簡(jiǎn)單。

explain返回豐富的信息。

類(lèi)似于ALTER TABLE或CREATE TABLE一類(lèi)的操作都是非事務(wù)性的.它們會(huì)提交未提交的事務(wù),并且不能回滾也不能做災(zāi)難恢復(fù)

DDL也是有事務(wù)的。

PostgreSQL主要優(yōu)勢(shì):

1. PostgreSQL完全免費(fèi),而且是BSD協(xié)議,如果你把PostgreSQL改一改,然后再拿去賣(mài)錢(qián),也沒(méi)有人管你,這一點(diǎn)很重要,這表明了PostgreSQL數(shù)據(jù)庫(kù)不會(huì)被其它公司控制。oracle數(shù)據(jù)庫(kù)不用說(shuō)了,是商業(yè)數(shù)據(jù)庫(kù),不開(kāi)放。而MySQL數(shù)據(jù)庫(kù)雖然是開(kāi)源的,但現(xiàn)在隨著SUN被oracle公司收購(gòu),現(xiàn)在基本上被oracle公司控制,其實(shí)在SUN被收購(gòu)之前,MySQL中最重要的InnoDB引擎也是被oracle公司控制的,而在MySQL中很多重要的數(shù)據(jù)都是放在InnoDB引擎中的,反正我們公司都是這樣的。所以如果MySQL的市場(chǎng)范圍與oracle數(shù)據(jù)庫(kù)的市場(chǎng)范圍沖突時(shí),oracle公司必定會(huì)犧牲MySQL,這是毫無(wú)疑問(wèn)的。

2. 與PostgreSQl配合的開(kāi)源軟件很多,有很多分布式集群軟件,如pgpool、pgcluster、slony、plploxy等等,很容易做讀寫(xiě)分離、負(fù)載均衡、數(shù)據(jù)水平拆分等方案,而這在MySQL下則比較困難。

3. PostgreSQL源代碼寫(xiě)的很清晰,易讀性比MySQL強(qiáng)太多了,懷疑MySQL的源代碼被混淆過(guò)。所以很多公司都是基本PostgreSQL做二次開(kāi)發(fā)的。

4. PostgreSQL在很多方面都比MySQL強(qiáng),如復(fù)雜SQL的執(zhí)行、存儲(chǔ)過(guò)程、觸發(fā)器、索引。同時(shí)PostgreSQL是多進(jìn)程的,而MySQL是線程的,雖然并發(fā)不高時(shí),MySQL處理速度快,但當(dāng)并發(fā)高的時(shí)候,對(duì)于現(xiàn)在多核的單臺(tái)機(jī)器上,MySQL的總體處理性能不如PostgreSQL,原因是MySQL的線程無(wú)法充分利用CPU的能力。

目前只想到這些,以后想到再添加,歡迎大家拍磚。

PostgreSQL與oracle或InnoDB的多版本實(shí)現(xiàn)的差別

PostgreSQL與oracle或InnoDB的多版本實(shí)現(xiàn)最大的區(qū)別在于最新版本和歷史版本是否分離存儲(chǔ),PostgreSQL不分,而oracle和InnoDB分,而innodb也只是分離了數(shù)據(jù),索引本身沒(méi)有分開(kāi)。

PostgreSQL的主要優(yōu)勢(shì)在于:

1. PostgreSQL沒(méi)有回滾段,而oracle與innodb有回滾段,oracle與Innodb都有回滾段。對(duì)于oracle與Innodb來(lái)說(shuō),回滾段是非常重要的,回滾段損壞,會(huì)導(dǎo)致數(shù)據(jù)丟失,甚至數(shù)據(jù)庫(kù)無(wú)法啟動(dòng)的嚴(yán)重問(wèn)題。另由于PostgreSQL沒(méi)有回滾段,舊數(shù)據(jù)都是記錄在原先的文件中,所以當(dāng)數(shù)據(jù)庫(kù)異常crash后,恢復(fù)時(shí),不會(huì)象oracle與Innodb數(shù)據(jù)庫(kù)那樣進(jìn)行那么復(fù)雜的恢復(fù),因?yàn)閛racle與Innodb恢復(fù)時(shí)同步需要redo和undo。所以PostgreSQL數(shù)據(jù)庫(kù)在出現(xiàn)異常crash后,數(shù)據(jù)庫(kù)起不來(lái)的幾率要比oracle和mysql小一些。

2. 由于舊的數(shù)據(jù)是直接記錄在數(shù)據(jù)文件中,而不是回滾段中,所以不會(huì)象oracle那樣經(jīng)常報(bào)ora-01555錯(cuò)誤。

3. 回滾可以很快完成,因?yàn)榛貪L并不刪除數(shù)據(jù),而oracle與Innodb,回滾時(shí)很復(fù)雜,在事務(wù)回滾時(shí)必須清理該事務(wù)所進(jìn)行的修改,插入的記錄要?jiǎng)h除,更新的記錄要更新回來(lái)(見(jiàn)row_undo函數(shù)),同時(shí)回滾的過(guò)程也會(huì)再次產(chǎn)生大量的redo日志。

4. WAL日志要比oracle和Innodb簡(jiǎn)單,對(duì)于oracle不僅需要記錄數(shù)據(jù)文件的變化,還要記錄回滾段的變化。

PostgreSQL的多版本的主要劣勢(shì)在于:

1、最新版本和歷史版本不分離存儲(chǔ),導(dǎo)致清理老舊版本需要作更多的掃描,代價(jià)比較大,但一般的數(shù)據(jù)庫(kù)都有高峰期,如果我們合理安排VACUUM,這也不是很大的問(wèn)題,而且在PostgreSQL9.0中VACUUM進(jìn)一步被加強(qiáng)了。

2、由于索引中完全沒(méi)有版本信息,不能實(shí)現(xiàn)Coverage index scan,即查詢只掃描索引,直接從索引中返回所需的屬性,還需要訪問(wèn)表。而oracle與Innodb則可以;

進(jìn)程模式與線程模式的對(duì)比

PostgreSQL和oracle是進(jìn)程模式,MySQL是線程模式。

進(jìn)程模式對(duì)多CPU利用率比較高。

進(jìn)程模式共享數(shù)據(jù)需要用到共享內(nèi)存,而線程模式數(shù)據(jù)本身就是在進(jìn)程空間內(nèi)都是共享的,不同線程訪問(wèn)只需要控制好線程之間的同步。

線程模式對(duì)資源消耗比較少。

所以MySQL能支持遠(yuǎn)比oracle多的更多的連接。

對(duì)于PostgreSQL的來(lái)說(shuō),如果不使用連接池軟件,也存在這個(gè)問(wèn)題,但PostgreSQL中有優(yōu)秀的連接池軟件軟件,如pgbouncer和pgpool,所以通過(guò)連接池也可以支持很多的連接。

堆表與索引組織表的的對(duì)比

Oracle支持堆表,也支持索引組織表

PostgreSQL只支持堆表,不支持索引組織表

Innodb只支持索引組織表

索引組織表的優(yōu)勢(shì):

表內(nèi)的數(shù)據(jù)就是按索引的方式組織,數(shù)據(jù)是有序的,如果數(shù)據(jù)都是按主鍵來(lái)訪問(wèn),那么訪問(wèn)數(shù)據(jù)比較快。而堆表,按主鍵訪問(wèn)數(shù)據(jù)時(shí),是需要先按主鍵索引找到數(shù)據(jù)的物理位置。

索引組織表的劣勢(shì):

索引組織表中上再加其它的索引時(shí),其它的索引記錄的數(shù)據(jù)位置不再是物理位置,而是主鍵值,所以對(duì)于索引組織表來(lái)說(shuō),主鍵的值不能太大,否則占用的空間比較大。

對(duì)于索引組織表來(lái)說(shuō),如果每次在中間插入數(shù)據(jù),可能會(huì)導(dǎo)致索引分裂,索引分裂會(huì)大大降低插入的性能。所以對(duì)于使用innodb來(lái)說(shuō),我們一般最好讓主鍵是一個(gè)無(wú)意義的序列,這樣插入每次都發(fā)生在最后,以避免這個(gè)問(wèn)題。

由于索引組織表是按一個(gè)索引樹(shù),一般它訪問(wèn)數(shù)據(jù)塊必須按數(shù)據(jù)塊之間的關(guān)系進(jìn)行訪問(wèn),而不是按物理塊的訪問(wèn)數(shù)據(jù)的,所以當(dāng)做全表掃描時(shí)要比堆表慢很多,這可能在OLTP中不明顯,但在數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用中可能是一個(gè)問(wèn)題。

  PostgreSQL9.0中的特色功能:

PostgreSQL中的Hot Standby功能

也就是standby在應(yīng)用日志同步時(shí),還可以提供只讀服務(wù),這對(duì)做讀寫(xiě)分離很有用。這個(gè)功能是oracle11g才有的功能。

PostgreSQL異步提交(Asynchronous Commit)的功能:

  這個(gè)功能oracle中也是到oracle11g R2才有的功能。因?yàn)樵诤芏鄳?yīng)用場(chǎng)景中,當(dāng)宕機(jī)時(shí)是允許丟失少量數(shù)據(jù)的,這個(gè)功能在這樣的場(chǎng)景中就特別合適。在PostgreSQL9.0中把synchronous_commit設(shè)置為false就打開(kāi)了這個(gè)功能。需要注意的是,雖然設(shè)置為了異步提交,當(dāng)主機(jī)宕機(jī)時(shí),PostgreSQL只會(huì)丟失少量數(shù)據(jù),異步提交并不會(huì)導(dǎo)致數(shù)據(jù)損壞而數(shù)據(jù)庫(kù)起不來(lái)的情況。MySQL中沒(méi)有聽(tīng)說(shuō)過(guò)有這個(gè)功能。

PostgreSQL中索引的特色功能:

PostgreSQL中可以有部分索引,也就是只能表中的部分?jǐn)?shù)據(jù)做索引,create index 可以帶where 條件。同時(shí)PostgreSQL中的索引可以反向掃描,所以在PostgreSQL中可以不必建專(zhuān)門(mén)的降序索引了。


當(dāng)前標(biāo)題:postgresql前十的簡(jiǎn)單介紹
文章分享:http://weahome.cn/article/dschsdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部