導航:首頁 > 編程語言 > postgresql伺服器編程

postgresql伺服器編程

發布時間:2022-07-12 23:54:12

Ⅰ 為什麼postgrelsql的性能沒有mysql好

一、 PostgreSQL 的穩定性極強, Innodb 等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步,然而很多 MySQL 用戶都遇到過Server級的資料庫丟失的場景——mysql系統庫是MyISAM的,相比之下,PG資料庫這方面要好一些。
二、任何系統都有它的性能極限,在高並發讀寫,負載逼近極限下,PG的性能指標仍可以維持雙曲線甚至對數曲線,到頂峰之後不再下降,而 MySQL 明顯出現一個波峰後下滑(5.5版本之後,在企業級版本中有個插件可以改善很多,不過需要付費)。
三、PG 多年來在 GIS 領域處於優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG有大量字典、數組、bitmap 等數據類型,相比之下mysql就差很多,instagram就是因為PG的空間資料庫擴展POSTGIS遠遠強於MYSQL的my spatial而採用PGSQL的。

四、PG 的「無鎖定」特性非常突出,甚至包括 vacuum 這樣的整理數據空間的操作,這個和PGSQL的MVCC實現有關系。
五、PG 的可以使用函數和條件索引,這使得PG資料庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。
六、PG有極其強悍的 SQL 編程能力(9.x 圖靈完備,支持遞歸!),有非常豐富的統計函數和統計語法支持,比如分析函數(ORACLE的叫法,PG里叫window函數),還可以用多種語言來寫存儲過程,對於R的支持也很好。這一點上MYSQL就差的很遠,很多分析功能都不支持,騰訊內部數據存儲主要是MYSQL,但是數據分析主要是HADOOP+PGSQL。
七、PG 的有多種集群架構可以選擇,plproxy 可以支持語句級的鏡像或分片,slony 可以進行欄位級的同步設置,standby 可以構建WAL文件級或流式的讀寫分離集群,同步頻率和集群策略調整方便,操作非常簡單。
八、一般關系型資料庫的字元串有限定長度8k左右,無限長 TEXT 類型的功能受限,只能作為外部大數據訪問。而 PG 的 TEXT 類型可以直接訪問,SQL語法內置正則表達式,可以索引,還可以全文檢索,或使用xml xpath。用PG的話,文檔資料庫都可以省了。
九,對於WEB應用來說,復制的特性很重要,mysql到現在也是非同步復制,pgsql可以做到同步,非同步,半同步復制。還有mysql的同步是基於binlog復制,類似oracle golden gate,是基於stream的復制,做到同步很困難,這種方式更加適合異地復制,pgsql的復制基於wal,可以做到同步復制。同時,pgsql還提供stream復制。
十,pgsql對於numa架構的支持比mysql強一些,比MYSQL對於讀的性能更好一些,pgsql提交可以完全非同步,而mysql的內存表不夠實用(因為表鎖的原因)

最後說一下我感覺 PG 不如 MySQL 的地方。
第一,MySQL有一些實用的運維支持,如 slow-query.log ,這個pg肯定可以定製出來,但是如果可以配置使用就更好了。
第二是mysql的innodb引擎,可以充分優化利用系統所有內存,超大內存下PG對內存使用的不那麼充分,
第三點,MySQL的復制可以用多級從庫,但是在9.2之前,PGSQL不能用從庫帶從庫。
第四點,從測試結果上看,mysql 5.5的性能提升很大,單機性能強於pgsql,5.6應該會強更多.
第五點,對於web應用來說,mysql 5.6 的內置MC API功能很好用,PGSQL差一些。

另外一些:
pgsql和mysql都是背後有商業公司,而且都不是一個公司。大部分開發者,都是拿工資的。
說mysql的執行速度比pgsql快很多是不對的,速度接近,而且很多時候取決於你的配置。
對於存儲過程,函數,視圖之類的功能,現在兩個資料庫都可以支持了。
另外多線程架構和多進程架構之間沒有絕對的好壞,oracle在unix上是多進程架構,在windows上是多線程架構。
很多pg應用也是24/7的應用,比如skype. 最近幾個版本VACUUM基本不影響PGSQL 運行,8.0之後的PGSQL不需要cygwin就可以在windows上運行。
至於說對於事務的支持,mysql和pgsql都沒有問題。

Ⅱ 常用資料庫系統簡介

碼字不容易啊,望採納。
ORACLE (甲骨文,美國)
優點:產品系列齊全,幾乎囊括所有應用領域,大型,完善,安全,可以支持多個實例同時運行,功能強。能在所有主流平台上運行(包括 windows)。完全支持所有的工業標准。採用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支持。
缺點:價格成本,服務費用,後期產品追加費用,管理維護相對麻煩,對硬體的要求高。
幾乎匹配所有動態網頁設計,性能優越。

SQLSERVER(微軟,美國)
優點:簡單,界面友好,上手容易,只能在WINDOWS平台下使用。一般用於.net 程序設計。Windows9X系列產品是偏重於桌面應用,NT server只適合中小型企業。
缺點:windows平台的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是在處理大數據量的關鍵業務時。
網頁設計多與C#(也是微軟的)經典組合,不過也是幾乎開放所有開發語言介面
MYSQL (被oracle收購,收購後的新版已出,市場反應一般)
優點:免費,功能不錯,是開源的,體積小,並發執行的資料庫,如今mysql逐漸體現出性價比高的優勢。
缺點:穩定性有待考量,面對大量數據的處理能力有限,並發性處理的機制不健全。
網頁開發mysql的應用還是很多的,應用比較廣泛。
DB2 (IBM 美國)
優點:優點很多啦,與oracle一樣是大型以及超大型的資料庫,能力當然很好啦,企業解決方案很牛X,在金融和電信方運用DB2的很多,最適於海量數據。DB2在企業級的應用最為廣泛,在全球的500家最大的企業中,幾乎85%以上用DB2資料庫伺服器,而國內到97年約佔5%。不過與oracle相比db2的應用相對較窄,一是價錢很貴,二是主要面向大型企業,市場份額還是oracle最高,所以db2專家較少,很吃香的。
以db2的優質能力相對海量並發的web服務和訪問比較輕松啦。
Access(微軟,美國):
優點:操作簡潔、方便,不用依賴Server也可以對數據進行操作。
缺點:安全性不夠,如果做為伺服器的話,對伺服器要求很高,否則容易造成 MDB 損壞,高強度操作適應性差,不能將 VBA 代碼開發的軟體系統直接編譯成 EXE 可執行文件,不能脫離 ACCESS 或者 ACCESS RUNTIME 環境,該環境相對其他軟體體積較大(50M左右),每個資料庫文件最大限制只有2G,對於大型網站顯然不能夠勝任。
我接觸的access應用比較少啦,關於開發的不了解了。
Sybase(Sybase 美國):
優點:操作簡單,管理相對容易,對新手很好理解,上手快,曾經的sybase還是挺輝煌的,sybase 數據倉庫還是挺不錯,大數據的解決方案也不錯,與oracle,db2齊名,但是之後似乎難以追隨市場的腳步了。
缺點:Sybase使用的編程介面不是開放的,沒有使用SQL92等相關的標准,因此編制存儲程序和觸發器所用的Transact-SQL也是它們自己專用的。 優化器(OPTIMIZER)不能有效的支持復雜的查詢(ComplexQueries)。應用程序中稍微復雜一些的SQL語句,Sybase的優化器就無法妥善優化處理。已經退出主流資料庫市場,市場份額縮水嚴重,被SAP收購後前途待觀望。
web應用還是比較廣泛的啦。
informix(被IBM收購):
優點:如今被IBM定位為作為IBM在線事務處理(OLTP)旗艦級數據服務系統,使用不是很廣泛,IBM對Informix和DB2都有長遠的規劃,兩個資料庫產品互相吸取對方的技術優勢。
缺點:INFORMIX是以小型資料庫起家,所以其產品設計到目前為止仍有許多小型資料庫的限制。許多用戶都曾遇到INFORMIX在數據存儲、日誌管理、備份、恢復等方面的問題。Informix的擴展並行選項在支持多用戶並發訪問時存在困難。INFORMIX由於缺乏對大量數據的管理經驗,所以其優化器技術也不能針對大量數據做優化。 小型企業可以嘗試使用。
postgresql(美國):
優點:輕盈好用的資料庫,有點很多,如優化排序性能,內存佔用更少;表繼承(很強),提高加鎖效率和並發度;創建索引過程中允許INSERT/UPDATE/DELETE等等。
缺點:不足之處就是大數量的場景有待市場檢驗,目前觸及海量數據的案例較少。

如果對你有幫助.請點擊我的回答下方【選為滿意回答】按鈕

Ⅲ 四大開源資料庫是哪些

開源世界中的那幾個免費資料庫
發布時間:2011-11-22 09:34:30 來源:CSDN 評論:0 點擊:1476 次 【字型大小:大 中 小】
QQ空間 新浪微博 騰訊微博 人人網 豆瓣網 網路空間 網路搜藏 開心網 復制 更多 0
開源資料庫MySQLMySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源...

開源資料庫MySQL

MySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。


盤點:開源社區那些免費的資料庫軟體

MySQL為多種編程語言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、php、Python、Ruby和Tcl等。而其自身是採用C和C++編寫的,使用了多種編譯器進行測試,所以,MySQL能夠保證源代碼具有很強的可移植性。這樣的一款資料庫,自然能夠支持幾乎所有的操作系統,從Unix、linux到Windows,具體包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多種操作系統。最重要的是,它是一個可以處理擁有上千萬條記錄的大型資料庫。

與此同時,MySQL也產生了很多分支版本的資料庫也非常值得推薦。

首先是MariaDB,它是一個採用Maria存儲引擎的MySQL分支版本,是由原來MySQL的作者 Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器。與MySQL相比較,MariaDB更強的地方在於它擁有更多的引擎,包括Maria存儲引擎、PBXT存儲引擎、XtraDB存儲引擎、FederatedX存儲引擎,它能夠更快的復制查詢處理、運行的速度更快、更好的功能測試以及支持對Unicode的排序等。

其次是rcona,它為MySQL資料庫伺服器進行了改進,在功能和性能上較MySQL有著很顯著的提升。該版本提升了在高負載情況下的InnoDB的性能,同時,它還為DBA提供一些非常有用的性能診斷工具,並且提供很多參數和命令來控制伺服器行為。

第三是Percona Server,它使用了諸如google-mysql-tools、Proven Scaling和 Open Query對MySQL進行改造。並且,它只包含MySQL的伺服器版,並沒有提供相應對 MySQL的Connector和GUI工具進行改進。

非關系型資料庫NoSQL

從NoSQL的字面上理解,NoSQL就是Not Only SQL,被業界認為是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於目前鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入。


盤點:開源社區那些免費的資料庫軟體

當然,NoSQL也是隨著互聯網Web2.0網站的興起才能取得長足的進步。關鍵的需求在於,傳統的關系資料庫在應付Web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站顯得力不從心,暴露了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。

首先推薦的是Oracle NoSQL Database,這是一個社區版。Oracle的這個NoSQL Database, 是在10月4號的甲骨文全球大全上發布的Big Data Appliance的其中一個組件,Big Data Appliance是一個集成了Hadoop、NoSQL Database、Oracle資料庫Hadoop適配器、Oracle資料庫Hadoop裝載器及R語言的系統。

其次推薦的是Membase。Membase是NoSQL家族的一個新的重量級的成員。Membase是開源項目,源代碼採用了Apache2.0的使用許可。該項目託管在GitHub.Source tarballs上,目前可以下載beta版本的Linux二進制包。該產品主要是由North Scale的memcached核心團隊成員開發完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區網路空間的供應商。

並且,Membase容易安裝、操作,可以從單節點方便的擴展到集群,而且為memcached(有線協議的兼容性)實現了即插即用功能,在應用方面為開 發者和經營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase伺服器的前端。通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程介面,包括可配置 的告警信息。

Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統一的節點進行復制。 另外,對存儲的數據進行再分配仍然是必要的。

第三推薦的是Hibari。Hibari在日語中意思為「雲雀」,它是一個專為高可靠性和大數據存儲的資料庫引擎,可用於雲計算環境中,例如 webmail、SNS和其他要求T/P級數據存儲的環境中。同時,Hibari也支持Java,C/C++,Python,Ruby和Erlang語言的客戶端。

第四推薦的是memcachedb。這是一個由新浪網的開發人員開放出來的開源項目,給memcached分布式緩存伺服器添加了Berkeley DB的持久化存儲機制和非同步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合於需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。

第五推薦的是Leveldb。這是一個Google實現的非常高效的kv資料庫,目前的版本1.2能夠支持billion級別的數據量了。 在這個數量級別下還有著非常高的性能,主要歸功於它的良好的設計,特別是LSM演算法。LevelDB是單進程的服務,性能非常之高,在一台4個Q6600的CPU機器上,每秒鍾寫數據超過40w,而隨機讀的性能每秒鍾超過10w。

XML資料庫的優勢

XML資料庫是一種支持對XML格式文檔進行存儲和查詢等操作的數據管理系統。在系統中,開發人員可以對資料庫中的XML文檔進行查詢、導出和指定格式的序列化。目前XML資料庫有三種類型:XMLEnabledDatabase(XEDB),即能處理XML的資料庫;NativeXMLDatabase(NXD),即純XML資料庫;HybridXMLDatabase(HXD),即混合XML資料庫。

關系資料庫中的第一代XML支持是切分(或分解)文檔,以適應關系表格或將文檔原封不動地存儲為字元或二進制大對象(CLOB 或 BLOB)。這兩個方法中的任一種都嘗試將XML模型強制轉換成關系模型。然而,這兩種方法在功能和性能上都有很大的局限性。混合型模型將XML存儲在類似於DOM的模型中。XML數據被格式化為緩沖數據頁,以便快速導航和執行查詢以及簡化索引編制。

在這里,首要要推薦的XML資料庫是Sedna。它號稱是一款原生態的XML資料庫,提供了全功能的核心資料庫服務,包括持久化存儲、ACID事務、索引、安全、熱備、UTF8等。實現了 W3C XQuery 規范,支持全文搜索以及節點級別的更新操作。

第二款XML資料庫是BaseX。這款資料庫用來存儲緊縮的XML數據,提供了高效的 XPath和XQuery的實現,同時,它還提供一個前端操作界面。


盤點:開源社區那些免費的資料庫軟體

第三款推薦的是XMLDB。這款資料庫使用了關系型資料庫來存儲任意的XML文檔,因為所採用的存儲機制,所以文檔的搜索速度特別快,同時執行XSL轉換也相當快。XMLDB同時還提供了一個PHP的模塊,可以應用在Web應用中。

第四塊推薦的是X-Hive/DB。它是一個為需要高級XML數據處理和存儲功能的軟體開發者設計的強大的專屬XML資料庫。X-Hive/DB Java API包含存儲、查詢、檢索、轉換和發表XML數據的方法。

與傳統關系型資料庫相比,XML資料庫具有以下優勢:第一,XML資料庫能夠對半結構化數據進行有效的存取和管理。如網頁內容就是一種半結構化數據,而傳統的關系資料庫對於類似網頁內容這類半結構化數據無法進行有效的管理。第二,提供對標簽和路徑的操作。傳統資料庫語言允許對數據元素的值進行操作,不能對元素名稱操作,半結構化資料庫提供了對標簽名稱的操作,還包括了對路徑的操作。第三,當數據本身具有層次特徵時,由於XML數據格式能夠清晰表達數據的層次特徵,因此XML資料庫便於對層次化的數據進行操作。XML資料庫適合管理復雜數據結構的數據集,如果己經以XML格式存儲信息,則XML資料庫利於文檔存儲和檢索;可以用方便實用的方式檢索文檔,並能夠提供高質量的全文搜索引擎。另外XML資料庫能夠存儲和查詢異種的文檔結構,提供對異種信息存取的支持。

Ⅳ PostgreSQL 有哪些經典入門書籍

如果只是使用的話,文檔足夠了。非常的詳細,可以根據需要選擇著看。也有一本PostgreSQL伺服器編程的書,想深入可以一讀。如果只是使用的話,文檔足夠了。非常的詳細,可以根據需要選擇著看。也有一本PostgreSQL伺服器編程的書,想深入可以一讀。

Ⅳ 我在linux下安裝了postgresql,但是啟動時候說伺服器啟動失敗!9.5版本。哪位打什麼幫忙解決下

我用ubuntu,所以不大懂yum具體怎麼操作,但我想應該與apt的功能差不多。首先,postgresql是很有名的資料庫,你用不著指定具體的版本。你可以直接用yum去查詢源或者庫里是否有這個軟體(具體操作請參考yum的文檔,我這邊是apt-cachesearchpostgresql)當然,如果你用新立得的話,它的編輯菜單里有個按任務安裝軟體,裡面有postgresql資料庫的選項。安裝postgresql之後難免要配置它。你也許會很奇怪,安裝的過程中沒有提示你添加用戶或者添加資料庫密碼(在ubuntu上就是這樣,不知道紅帽是什麼樣的情況)。其實,隨著資料庫的安裝,已經添加了用戶postgres,你要做的是先登錄到這個用戶的shell下,再添加你需要的實用用戶。按照我的操作,是這樣的,先passwdpostgres改掉本地用戶postgres的密碼然後用這個postgres登錄到系統(可以Ctrl+Alt+F1-F5來切換虛擬控制台)。createuser本地帳戶##如果你本地用戶名是joe,那麼就createuserjoe會提示你是否創建超級用戶。一般來說都會建一個超級用戶來管理,當然你也可以選擇建立一個普通的用戶。現在基本上就配置完畢了,回到你剛才的用戶登錄,例如joe,可以用psql來登錄到postgresql了。如果你需要編程登錄資料庫,那麼你得先建庫,再建role,然後通過role登錄。打個比方,用php登錄到postgresql,使用PEAR的MDB2軟體包登錄,你可以這樣createdb##假設你為當前用戶(本地帳戶)建立了一個超級資料庫用戶(角色,role),該命令會建立一個與當前用戶同名的資料庫,可以指定資料庫名來建別的庫。psql##以超級用戶登錄到資料庫(與本地用戶同名)alterrole本地用戶名password'newpassword';##為本地資料庫用戶(角色)建立一個密碼,這個密碼將來用於你編程登錄資料庫現在可以用本地用戶作為角色通過php編程登錄資料庫了,因為密碼和用戶名都是已知的了。當然,用超級用戶登錄資料庫有安全問題,如果你建立一個普通角色的話,需要給普通用戶賦權,這個問題需要你參考postgresql的用戶手冊,網路文庫里有英文9.1的用戶手冊,查詢許可權一節即可解決此問題。或者,可以使用pgadmin這一圖形界面來解決許可權等問題。

閱讀全文

與postgresql伺服器編程相關的資料

熱點內容
海外懸疑電影推薦 瀏覽:270
如何查找本機網關ip和dns伺服器 瀏覽:306
電影槍版資源到底在哪裡 瀏覽:338
51單片機必考 瀏覽:849
pdf背景黑色 瀏覽:255
0855影視大全在線觀看 瀏覽:527
勾引閨蜜老公在電影院 瀏覽:553
神秘電影網頁鏈接 瀏覽:927
重生到一夫多妻的現代世界 瀏覽:438
彼時曾相伴為什麼看不了 瀏覽:721
漏的多的電影 瀏覽:239
李采譚合作的男演員 瀏覽:942
醫院雲伺服器采購 瀏覽:505
國產經典懷舊敵特老電影 瀏覽:901
有劇情有尺度大的電影 瀏覽:290
演算法所需達到的時間性能 瀏覽:323
圖片管理發布源碼 瀏覽:425
編程怎麼轉換中文 瀏覽:971
二手安卓手機為什麼要屏蔽升級 瀏覽:870
福昕pdf套件注冊碼 瀏覽:142