David Bolton是一名獨(dú)立開(kāi)發(fā)者,他使用PostgreSQL和MySQL都已有超過(guò)十年的時(shí)間。近日,他撰文闡述了選擇PostgreSQL而不是MySQL的理由。他認(rèn)為,MySQL之所以仍然如此流行是因?yàn)槊總€(gè)Linux Web托管軟件包中都包含它。但隨著Oracle將其收購(gòu),MySQL的開(kāi)源程度大不如前。而PostgreSQL不僅發(fā)展更快,還加入了JSON支持,成為少數(shù)幾個(gè)支持NoSQL的關(guān)系型數(shù)據(jù)庫(kù)之一。MySQL/MariaDB的當(dāng)前版本是5.7.6(MariaDB為MySQL創(chuàng)建者M(jìn)onty Widenius創(chuàng)建的一個(gè)MySQL分支),PostgreSQL的版本是9.4.1。Bolton從以下幾個(gè)方面對(duì)比了兩者的最新版本:

鼓樓ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
ANSI標(biāo)準(zhǔn)兼容性:與先前的版本相比,MySQL已經(jīng)有了長(zhǎng)足的進(jìn)步,但MySQL背后的哲學(xué)是,如果客戶喜歡,他們就會(huì)支持非標(biāo)準(zhǔn)擴(kuò)展,而PostgreSQL從開(kāi)始就將標(biāo)準(zhǔn)構(gòu)建到平臺(tái)里。不過(guò),二者殊途同歸,差別不大;
注冊(cè)GitHub后你就會(huì)有0.3G的免費(fèi)空間,不過(guò)只能創(chuàng)建公開(kāi)項(xiàng)目,這也滿足代碼分享的目的,我最喜歡的倒是它的代碼展示方式,可以直接瀏覽你的代碼,代碼是經(jīng)過(guò)高亮、添加行號(hào)處理過(guò)的,十分漂亮,體驗(yàn)一流,比如這個(gè)Webpy托管的地方。
MacOSX本身不支持Docker,需要安裝DockerToolbox來(lái)使用Docker。
1.下載DockerToolbox,可以從百度網(wǎng)盤下載,版本是1.8.3,下載地址:
2.安裝Docker
執(zhí)行安裝程序,按照提示一路操作即可。會(huì)安裝VirtualBox虛擬機(jī),Kitematic管理程序。
用Kinematic來(lái)管理Docker非常簡(jiǎn)單,完全圖形化的界面,大大簡(jiǎn)化了Docker容器的安裝和配置。
3.安裝gitlab
我用的gitlab容器是sameersbn/gitlab,這個(gè)是我唯一搭建成功的容器,其它的容器總是有各種問(wèn)題。這個(gè)容器依賴于redis和postgresql容器,這兩個(gè)容器需要單獨(dú)安裝。
3.1 準(zhǔn)備工作
通過(guò)Kitematic打開(kāi)DOCKER CLI命令窗口,在Kinematic界面的左下角,點(diǎn)一下就會(huì)彈出一個(gè)命令窗口。
3.2 安裝redis容器
docker run --name=redis -d sameersbn/redis
3.3 安裝postgresql容器
mkdir -p $HOME/postgresql/data
docker run --name=postgresql -d -e 'POSTGRES_USER=gitlab' -e 'POSTGRES_PASSWORD=password' -e 'POSTGRES_DATABASE=gitlabhq_production' -v /$HOME/postgresql/data:/var/lib/postgresql postgres:9.4.4
這里需要選9.4.4版本的postgresql容器,新版本有些問(wèn)題,容器關(guān)閉后容器的內(nèi)容不能持久保存到本地硬盤上,下次打開(kāi)容器時(shí)會(huì)發(fā)現(xiàn)辛苦做的配置都沒(méi)了。
3.4 安裝gitlab容器
docker run --name gitlab -d \
--link postgresql:postgresql --link redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume /$HOME/gitlab/data:/home/git/data \
sameersbn/gitlab:8.0.5
通過(guò)以上3步,gitlab容器就安裝完成了,安裝并步復(fù)雜。
4 啟動(dòng)和停止容器
啟動(dòng):
docker start redis
docker start postgresql
docker start gitlab
停止:
docker stop redis
docker stop postgresql
docker stop gitlab
在啟動(dòng)時(shí)注意啟動(dòng)順序,否則啟動(dòng)gitlab容器時(shí)會(huì)報(bào)錯(cuò),因?yàn)間itlab容器依賴于redis和postgresql這兩個(gè)容器,所以要先啟動(dòng)redis和postgresql。
5 使用
容器啟動(dòng)成功后,在瀏覽器中打開(kāi),http://本機(jī)ip:10080,就可以看到管理界面了,注意地址不能用localhost,只能用ip。
用以下信息登錄系統(tǒng):
默認(rèn)賬號(hào): root
默認(rèn)密碼: 5iveL!fe
后續(xù)的使用方式跟github基本一樣,可以用命令行工具,或者通過(guò)eclipse來(lái)對(duì)gitlab中的項(xiàng)目進(jìn)行操作。
項(xiàng)目的訪問(wèn)有ssh和http兩種方式,http方式使用比較簡(jiǎn)單,ssh方式需要在訪問(wèn)的機(jī)器上生成sshkey,并在gitlab中進(jìn)行注冊(cè)。
具體生成和注冊(cè)方式,在安裝好的gitlab中有說(shuō)明:
http://本機(jī)ip:10080/help/ssh/README
按照說(shuō)明進(jìn)行操作即可。
Navicat 設(shè)置HTTP屬性
HTTP通道是一種連接到服務(wù)器的方法,與網(wǎng)絡(luò)服務(wù)器使用相同的通訊協(xié)定(http://)和端口(端口80),這是當(dāng)互聯(lián)網(wǎng)服務(wù)供應(yīng)商不允許直接連接,但允許創(chuàng)建HTTP連接時(shí)使用。需要注意的是,設(shè)置HTTP只限于MySQL、PostgreSQL、SQLite 和MariaDB。
上傳通道腳本
若要使用此連接方法,首先需要做的是上傳通道腳本到網(wǎng)絡(luò)服務(wù)器。
注意:ntunnel_mysql.php、ntunnel_pgsql.php、ntunnel_sqlite.php或ntunnel_mariadb.php是在Navicat的安裝文件夾中。
設(shè)置HTTP通道
按照下列指示設(shè)置HTTP連接進(jìn)程:
1. 選擇HTTP選項(xiàng)卡并啟用“使用HTTP通道”。
2. 輸入通道腳本的網(wǎng)址。
3. 如果服務(wù)器安裝了Web應(yīng)用防火墻,可以勾選“用編碼傳出查詢”選項(xiàng)。
4. 如果通道腳本是在一個(gè)密碼保護(hù)的服務(wù)器或通過(guò)代理服務(wù)器來(lái)訪問(wèn)網(wǎng)際網(wǎng)路,可在“驗(yàn)證”或“代理服務(wù)器”選項(xiàng)卡找到所需的詳細(xì)驗(yàn)證信息。
5. 在常規(guī)選項(xiàng)卡的Navicat主機(jī)名是數(shù)據(jù)庫(kù)托管公司提供,應(yīng)設(shè)置和HTTP 服務(wù)器相對(duì)。
溫馨提示:HTTP通道和SSH通道不能同時(shí)運(yùn)作。當(dāng)選擇HTTP通道,SSH通道禁用,反之亦然。
主要有以下幾點(diǎn):第一,在 Nutanix Era數(shù)據(jù)庫(kù)管理系統(tǒng)2.0中,對(duì)跨集群和混合云的數(shù)據(jù)庫(kù)平臺(tái)功能進(jìn)行了擴(kuò)展,使客戶能夠根據(jù)自己的實(shí)際需求靈活地構(gòu)建和管理數(shù)據(jù)庫(kù),讓客戶能在需要的環(huán)境中自由地開(kāi)發(fā)和部署喜歡的數(shù)據(jù)庫(kù)。
第二,在Nutanix Era數(shù)據(jù)庫(kù)管理系統(tǒng)支持的數(shù)據(jù)庫(kù)引擎列表中,除了原有的 Oracle、MS SQL Server、PostgreSQL、MySQL 和 MariaDB之外,新增加了SAP/HANA。SAP/HANA 客戶現(xiàn)在可以利用 Era的“一鍵式”功能,在 Nutanix HCI 平臺(tái)上快速創(chuàng)建一個(gè)端到端的沙盒環(huán)境。
第三,擴(kuò)大針對(duì)PostgreSQL功能選擇和技術(shù)支持:借助NutanixEra2.0,PostgreSQL管理員現(xiàn)在可以充分利用NutanixEra數(shù)據(jù)庫(kù)管理系統(tǒng)的所有功能,包括補(bǔ)丁維護(hù)和就地還原等。此外,從現(xiàn)在起,Nutanix還為通過(guò)Era配置的PostgreSQL數(shù)據(jù)庫(kù)提供了7×24技術(shù)支持服務(wù),客戶有任何問(wèn)題都可隨時(shí)撥打我們的支持電話。
第四,對(duì)于那些追求全面托管型數(shù)據(jù)庫(kù)服務(wù)的客戶,Nutanix 與全球技術(shù)公司 HCL 合作,提供由 HCL 和 Nutanix 合作推出的名為 SKALE DB 的聯(lián)合解決方案。雙方的合作為客戶帶來(lái)了一款安全、可擴(kuò)展、適合云的托管數(shù)據(jù)庫(kù)即服務(wù)(DBaaS)產(chǎn)品,該產(chǎn)品集成了 Nutanix Era 和 Prism,用于數(shù)據(jù)庫(kù)和超融合基礎(chǔ)架構(gòu)的自動(dòng)化和管理。
第五,Nutanix Era數(shù)據(jù)庫(kù)即服務(wù)時(shí)間機(jī)器支持跨多個(gè) Nutanix 群集的日志復(fù)制。復(fù)制的日志用于跨多個(gè) Nutanix 群集創(chuàng)建和刷新基于時(shí)間點(diǎn)的數(shù)據(jù)庫(kù)克隆。
總之,Nutanix Era 2.0/2.1對(duì)于這些功能的增強(qiáng),將大大提高數(shù)據(jù)庫(kù)管理水平和管理效率。
MySQL之所以仍然如此流行是因?yàn)槊總€(gè)Linux Web托管軟件包中都包含它。但隨著Oracle將其收購(gòu),MySQL的開(kāi)源程度大不如前。而PostgreSQL不僅發(fā)展更快,還加入了JSON支持,成為少數(shù)幾個(gè)支持NoSQL的關(guān)系型數(shù)據(jù)庫(kù)之一。
MySQL/MariaDB的當(dāng)前版本是5.7.6(MariaDB為MySQL創(chuàng)建者M(jìn)onty Widenius創(chuàng)建的一個(gè)MySQL分支),PostgreSQL的版本是9.4.1。
PostgreSQL最近增加了JSON支持,與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,它提供了更大的數(shù)據(jù)存儲(chǔ)靈活性,因此,這方面PostgreSQL勝過(guò)MySQL。
PostgreSQL采用類似MIT的許可協(xié)議,允許開(kāi)發(fā)人員做任何事情,包括在開(kāi)源或閉源產(chǎn)品中商用,而MySQL的客戶端遵循GPL許可協(xié)議,所以開(kāi)發(fā)人員必須向Oracle付費(fèi)或者將自己的應(yīng)用程序開(kāi)源。
MySQL提供了插件程序API,支持C/C++或任何兼容C的語(yǔ)言,而且從5.7.3版本開(kāi)始支持全文搜索,PostgreSQL有一個(gè)類似的系統(tǒng)但支持的語(yǔ)言更多,包括C/C++、Java、.Net、Perl、 Python、Ruby、Tcl、ODBC等,它甚至可以在單獨(dú)的進(jìn)程中運(yùn)行用戶提供的代碼;除了所有關(guān)系型數(shù)據(jù)庫(kù)都包含的有關(guān)數(shù)據(jù)庫(kù)、表和列的一般信息外,PostgreSQL系統(tǒng)目錄中還可以包含關(guān)于數(shù)據(jù)類型、函數(shù)和存取方法的信息,開(kāi)發(fā)人員可以通過(guò)修改這些信息實(shí)現(xiàn)擴(kuò)展。
ANSI標(biāo)準(zhǔn)兼容性:與先前的版本相比,MySQL已經(jīng)有了長(zhǎng)足的進(jìn)步,但MySQL背后的哲學(xué)是,如果客戶喜歡,他們就會(huì)支持非標(biāo)準(zhǔn)擴(kuò)展,而PostgreSQL從開(kāi)始就將標(biāo)準(zhǔn)構(gòu)建到平臺(tái)里。不過(guò),二者殊途同歸,差別不大;
ACID遵從性:PostgreSQL有一個(gè)存儲(chǔ)引擎,而MySQL有9個(gè),但只有MyIsam和InnoDB與大部分用戶有關(guān),其中,后者為默認(rèn)存儲(chǔ)引擎。InnoDB和PostgreSQL都完全遵循ACID,差別不大;
無(wú)鎖表修改:MyIsam使用表級(jí)鎖來(lái)提升速度,這會(huì)導(dǎo)致寫(xiě)互斥。但PostgreSQL和InnoDB均使用行級(jí)鎖,差別不大;
子查詢:長(zhǎng)期以來(lái),這一直是MySQL的一個(gè)弱點(diǎn),雖然5.6.5作了重大改進(jìn),但PostgreSQL對(duì)表連接支持得更好,尤其是MySQL不支持全外連接,因此,這方面PostgreSQL勝過(guò)MySQL;
JSON支持和NoSQL:PostgreSQL最近增加了JSON支持,與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,它提供了更大的數(shù)據(jù)存儲(chǔ)靈活性,因此,這方面PostgreSQL勝過(guò)MySQL。
標(biāo)題名稱:postgresql托管的簡(jiǎn)單介紹
文章URL:http://www.yijiale78.com/article44/dschehe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站排名、、網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)