定義有時,這兩種定義會引起混淆,如Web服務(wù)器。它可能是指用于網(wǎng)站的計算機,也可能是指像Apache這樣的軟件,運行在這樣的計算機上以管理網(wǎng)頁組件和回應(yīng)網(wǎng)頁瀏覽器的請求。服務(wù)器服務(wù)器作為硬件來說,通常是指那些具有較高計算能力,能夠提供給多個用戶使用的計算機。服務(wù)器與PC機的不同點太多了,例如PC機在一個時刻通常只為一個用戶服務(wù)。服務(wù)器與主機不同,主機是通過終端給用戶使用的,服務(wù)器是通過網(wǎng)絡(luò)給客戶端用戶使用的。
創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),網(wǎng)站空間、主機租用、主機托管,四川、重慶、廣東電信服務(wù)器租用,成都棕樹電信機房,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
根據(jù)不同的計算能力,服務(wù)器又分為工作組級服務(wù)器,部門級服務(wù)器和企業(yè)級服務(wù)器。服務(wù)器操作系統(tǒng)是指運行在服務(wù)器硬件上的操作系統(tǒng)。服務(wù)器操作系統(tǒng)需要管理和充分利用服務(wù)器硬件的計算能力并提供給服務(wù)器硬件上的軟件使用。
現(xiàn)在,市場上有很多為服務(wù)器作平臺的操作系統(tǒng)。類Unix操作系統(tǒng),由于是Unix的后代,大多都有較好的作服務(wù)器平臺的功能。常見的類Unix服務(wù)器操作系統(tǒng)有Linux、FreeBSD、Solaris、Mac OS X Server、OpenBSD、NetBSD、和SCO OpenServer。微軟也出版了Microsoft Windows服務(wù)器版本,像早期的Windows NT Server,現(xiàn)代的Windows 2000 Server和Windows Server 2003。而最新版的Windows Server 2008的也已經(jīng)面世了。服務(wù)器軟件服務(wù)器軟件的定義如前面所述,服務(wù)器軟件工作在客戶端-服務(wù)器或瀏覽器-服務(wù)器的方式,有很多形式的服務(wù)器,常用的包括:
文件服務(wù)器 - 如Novell的NetWare
數(shù)據(jù)庫服務(wù)器 - 如Oracle數(shù)據(jù)庫服務(wù)器, MySQL, PostgreSQL, Microsoft SQL Server等
郵件服務(wù)器 - Sendmail, Postfix, Qmail, Microsoft Exchange,Lotus Domino等
網(wǎng)頁服務(wù)器 - 如Apache, thttpd, 微軟的IIS等
FTP服務(wù)器 - Pureftpd, Proftpd, WU-ftpd, Serv-U等
應(yīng)用服務(wù)器 - 如Bea公司的WebLogic,JBoss,Sun的GlassFish
代理服務(wù)器 - 如Squid cache
計算機名稱轉(zhuǎn)換服務(wù)器 - 如微軟的WINS服務(wù)器網(wǎng)絡(luò)服務(wù)器的分類(1):非x86服務(wù)器:包括大型機、小型機和UNIX服務(wù)器,它們是使用RISC(精簡指令集)或EPIC處理器,并且主要采用UNIX和其它專用操作系統(tǒng)的服務(wù)器,精簡指令集處理器主要有IBM公司的POWER和PowerPC處理器,SUN與富士通公司合作研發(fā)的SPARC處理器、EPIC處理器主要是HP與Intel合作研發(fā)的安騰處理器等。這種服務(wù)器價格昂貴,體系封閉,但是穩(wěn)定性好,性能強,主要用在金融、電信等大型企業(yè)的核心系統(tǒng)中。
(2):x86服務(wù)器:又稱CISC(復(fù)雜指令集)架構(gòu)服務(wù)器,即通常所講的PC服務(wù)器,它是基于PC機體系結(jié)構(gòu),使用Intel或其它兼容x86指令集的處理器芯片和Windows操作系統(tǒng)的服務(wù)器,如IBM的System x系列服務(wù)器、HP的Proliant 系列服務(wù)器等。 價格便宜、兼容性好、穩(wěn)定性差、不安全,主要用在中小企業(yè)和非關(guān)鍵業(yè)務(wù)中。
MySQL
MySQL聲稱自己是最流行的開源數(shù)據(jù)庫。LAMP中的M指的就是MySQL。構(gòu)建在LAMP上的應(yīng)用都會使用MySQL,如WordPress、Drupal等大多數(shù)php開源程序。MySQL最初是由MySQL AB開發(fā)的,然后在2008年以10億美金的價格賣給了Sun公司,Sun公司又在2010年被Oracle收購。Oracle支持MySQL的多個版本:Standard、Enterprise、Classic、Cluster、Embedded與Community。其中有一些是免費下載的,另外一些則是收費的。其核心代碼基于GPL許可,由于MySQL被控制在Oracle,社區(qū)擔(dān)心會對MySQL的開源會有影響,所以開發(fā)了一些分支,比如: MariaDB和Percona。
PostgreSQL
PostgreSQL標(biāo)榜自己是世界上最先進(jìn)的開源數(shù)據(jù)庫。PostgreSQL的一些粉絲說它能與Oracle相媲美,而且沒有那么昂貴的價格和傲慢的客服。最初是1985年在加利福尼亞大學(xué)伯克利分校開發(fā)的,作為Ingres數(shù)據(jù)庫的后繼。PostgreSQL是完全由社區(qū)驅(qū)動的開源項目。它提供了單個完整功能的版本,而不像MySQL那樣提供了多個不同的社區(qū)版、商業(yè)版與企業(yè)版。PostgreSQL基于自由的BSD/MIT許可,組織可以使用、復(fù)制、修改和重新分發(fā)代碼,只需要提供一個版權(quán)聲明即可。
MySQL與PostgreSQL的對比
MySQL的背后是一個成熟的商業(yè)公司,而PostgreSQL的背后是一個龐大的志愿開發(fā)組。這使得MySQL的開發(fā)過程更為慎重,而PostgreSQL的反應(yīng)更為迅速。這樣的兩種背景直接導(dǎo)致了各自固有的優(yōu)點和缺點。
PostgreSQL相對于MySQL的優(yōu)勢
1)不僅僅是關(guān)系型數(shù)據(jù)庫
除了存儲正常的數(shù)據(jù)類型外,還支持存儲:
array,不管是一位數(shù)組還是多為數(shù)組均支持
json(hStore)和jsonb,相比使用text存儲接送要高效很多
json和jsonb之間的區(qū)別
jsonb和json在更高的層面上看起來幾乎是一樣的,但在存儲實現(xiàn)上是不同的。
json存儲完的文本,json列會每次都解析存儲的值,它不支持索引,但你可以為查詢創(chuàng)建表達(dá)式索引。
jsonb存儲的二進(jìn)制格式,避免了重新解析數(shù)據(jù)結(jié)構(gòu)。它支持索引,這意味著你可以不使用指定的索引就能查詢?nèi)魏温窂健?/p>
當(dāng)我們比較寫入數(shù)據(jù)速度時,由于數(shù)據(jù)存儲的方式的原因,jsonb會比json稍微的慢一點。json列會每次都解析存儲的值,這意味著鍵的順序要和輸入的時候一樣。但jsonb不同,以二進(jìn)制格式存儲且不保證鍵的順序。因此,如果你有軟件需要依賴鍵的順序,jsonb可能不是你的應(yīng)用的最佳選擇。使用jsonb的優(yōu)勢還在于你可以輕易的整合關(guān)系型數(shù)據(jù)和非關(guān)系型數(shù)據(jù), PostgreSQL對于mongodb這類的基于文檔的數(shù)據(jù)庫是個不小的威脅,畢竟如果一個表中只有一列數(shù)據(jù)的類型是半結(jié)構(gòu)化的,沒有必要為了遷就它而整個表的設(shè)計采用schemaless的結(jié)構(gòu)。
2)支持地理信息處理擴展
PostGIS 為PostgreSQL提供了存儲空間地理數(shù)據(jù)的支持,使PostgreSQL成為了一個空間數(shù)據(jù)庫,能夠進(jìn)行空間數(shù)據(jù)管理、數(shù)量測量與幾何拓?fù)浞治觥T诠δ苌?,和MYSQL對比,PostGIS具有下列優(yōu)勢:
O2O業(yè)務(wù)場景中的LBS業(yè)務(wù)使用PostgreSQL + PostGIS有無法比擬的優(yōu)勢。
3)可以快速構(gòu)建REST API
PostgREST 可以方便的為任何 PostgreSQL 數(shù)據(jù)庫提供完全的 RESTful API 服務(wù)。
4)支持樹狀結(jié)構(gòu)
支持R-trees這樣可擴展的索引類型,可以更方便地處理一些特殊數(shù)據(jù)。MySQL 處理樹狀的設(shè)計會很復(fù)雜, 而且需要寫很多代碼, 而 PostgreSQL 可以高效處理樹結(jié)構(gòu)。
5)有極其強悍的 SQL 編程能力
支持遞歸,有非常豐富的統(tǒng)計函數(shù)和統(tǒng)計語法支持。
MySQL:支持 CREATE PROCEDURE 和 CREATE FUNCTION 語句。存儲過程可以用 SQL 和 C++ 編寫。用戶定義函數(shù)可以用 SQL、C 和 C++ 編寫。
PostgreSQL:沒有單獨的存儲過程,都是通過函數(shù)實現(xiàn)的。用戶定義函數(shù)可以用 PL/pgSQL(專用的過程語言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 編寫。
6)外部數(shù)據(jù)源支持
可以把 70 種外部數(shù)據(jù)源 (包括 Mysql, Oracle, CSV, hadoop …) 當(dāng)成自己數(shù)據(jù)庫中的表來查詢。Postgres有一個針對這一難題的解決方案:一個名為“外部數(shù)據(jù)封裝器(Foreign Data Wrapper,F(xiàn)DW)”的特性。該特性最初由PostgreSQL社區(qū)領(lǐng)袖Dave Page四年前根據(jù)SQL標(biāo)準(zhǔn)SQL/MED(SQL Management of External Data)開發(fā)。FDW提供了一個SQL接口,用于訪問遠(yuǎn)程數(shù)據(jù)存儲中的遠(yuǎn)程大數(shù)據(jù)對象,使DBA可以整合來自不相關(guān)數(shù)據(jù)源的數(shù)據(jù),將它們存入Postgres數(shù)據(jù)庫中的一個公共模型。這樣,DBA就可以訪問和操作其它系統(tǒng)管理的數(shù)據(jù),就像在本地Postgres表中一樣。例如,使用FDW for MongoDB,數(shù)據(jù)庫管理員可以查詢來自文檔數(shù)據(jù)庫的數(shù)據(jù),并使用SQL將它與來自本地Postgres表的數(shù)據(jù)相關(guān)聯(lián)。借助這種方法,用戶可以將數(shù)據(jù)作為行、列或JSON文檔進(jìn)行查看、排序和分組。他們甚至可以直接從Postgres向源文檔數(shù)據(jù)庫寫入(插入、更細(xì)或刪除)數(shù)據(jù),就像一個一體的無縫部署。也可以對Hadoop集群或MySQL部署做同樣的事。FDW使Postgres可以充當(dāng)企業(yè)的中央聯(lián)合數(shù)據(jù)庫或“Hub”。
7)沒有字符串長度限制
一般關(guān)系型數(shù)據(jù)庫的字符串有限定長度8k左右,無限長 TEXT 類型的功能受限,只能作為外部大數(shù)據(jù)訪問。而PostgreSQL的 TEXT 類型可以直接訪問,SQL語法內(nèi)置正則表達(dá)式,可以索引,還可以全文檢索,或使用xml xpath。MySQL 的各種text字段有不同的限制,要手動區(qū)分 small text, middle text, large text… PostgreSQL 沒有這個限制,text 能支持各種大小。
8)支持圖結(jié)構(gòu)數(shù)據(jù)存儲
沒有具體使用過,具體可以自己搜索下。參考鏈接:
9)支持窗口函數(shù)
窗口函數(shù)提供跨行相關(guān)的當(dāng)前查詢行集執(zhí)行計算的能力。僅當(dāng)調(diào)用跟著OVER子句的聚集函數(shù),作為窗口函數(shù);否則它們作為常規(guī)的聚合函數(shù)。窗口也是一種分組,但和 group by 的分組不同。窗口,可以提供分組之外,還可以執(zhí)行對每個窗口進(jìn)行計算??梢韵嘞癯墒莋roup by 后,然后對每個分組進(jìn)行計算,而不像Group by ,只是單純地分組。MySQL 不支持 OVER 子句, 而PostgreSQL支持。OVER 子句能簡單的解決 “每組取 top 5” 的這類問題。MySQL支持的SQL語法(ANSI SQL標(biāo)準(zhǔn))的很小一部分。不支持遞歸查詢、通用表表達(dá)式(Oracle的with 語句)或者窗口函數(shù)(分析函數(shù))。
10)對索引的支持更強
PostgreSQL 的可以使用函數(shù)和條件索引,這使得PostgreSQL數(shù)據(jù)庫的調(diào)優(yōu)非常靈活,mysql就沒有這個功能,條件索引在web應(yīng)用中很重要。對于索引類型:
MySQL:取決于存儲引擎。MyISAM:BTREE,InnoDB:BTREE。
PostgreSQL:支持 B-樹、哈希、R-樹和 Gist 索引。
InnoDB的表和索引都是按相同的方式存儲。也就是說表都是索引組織表。這一般要求主鍵不能太長而且插入時的主鍵最好是按順序遞增,否則對性能有很大影響。PostgreSQL不存在這個問題。
索引類型方面,MySQL取決于存儲引擎。MyISAM:BTREE,InnoDB:BTREE。PostgreSQL支持 B-樹、哈希、R-樹和 Gist 索引。
11)集群支持更好
Mysql Cluster可能與你的想象有較大差異。開源的cluster軟件較少。復(fù)制(Replication)功能是異步的并且有很大的局限性。例如,它是單線程的(single-threaded),因此一個處理能力更強的Slave的恢復(fù)速度也很難跟上處理能力相對較慢的Master。
PostgreSQL有豐富的開源cluster軟件支持。plproxy 可以支持語句級的鏡像或分片,slony 可以進(jìn)行字段級的同步設(shè)置,standby 可以構(gòu)建WAL文件級或流式的讀寫分離集群,同步頻率和集群策略調(diào)整方便,操作非常簡單。
另外,PostgreSQL的主備復(fù)制屬于物理復(fù)制,相對于MySQL基于binlog的邏輯復(fù)制,數(shù)據(jù)的一致性更加可靠,復(fù)制性能更高,對主機性能的影響也更小。對于WEB應(yīng)用來說,復(fù)制的特性很重要,mysql到現(xiàn)在也是異步復(fù)制,pgsql可以做到同步,異步,半同步復(fù)制。還有mysql的同步是基于binlog復(fù)制,類似oracle golden gate,是基于stream的復(fù)制,做到同步很困難,這種方式更加適合異地復(fù)制,pgsql的復(fù)制基于wal,可以做到同步復(fù)制。同時,pgsql還提供stream復(fù)制。
12)事務(wù)隔離做的更好
MySQL 的事務(wù)隔離級別 repeatable read 并不能阻止常見的并發(fā)更新, 得加鎖才可以, 但悲觀鎖會影響性能, 手動實現(xiàn)樂觀鎖又復(fù)雜. 而 PostgreSQL 的列里有隱藏的樂觀鎖 version 字段, 默認(rèn)的 repeatable read 級別就能保證并發(fā)更新的正確性, 并且又有樂觀鎖的性能。
13)對于字符支持更好一些
MySQL 里需要 utf8mb4 才能顯示 emoji 的坑, PostgreSQL 沒這個坑。
14)對表連接支持較完整
對表連接支持較完整,MySQL只有一種表連接類型:嵌套循環(huán)連接(nested-loop),不支持排序-合并連接(sort-merge join)與散列連接(hash join)。PostgreSQL都支持。
15)存儲方式支持更大的數(shù)據(jù)量
PostgreSQL主表采用堆表存放,MySQL采用索引組織表,能夠支持比MySQL更大的數(shù)據(jù)量。
16)時間精度更高
MySQL對于時間、日期、間隔等時間類型沒有秒以下級別的存儲類型,而PostgreSQL可以精確到秒以下。
17)優(yōu)化器的功能較完整
MySQL對復(fù)雜查詢的處理較弱,查詢優(yōu)化器不夠成熟,explain看執(zhí)行計劃的結(jié)果簡單。性能優(yōu)化工具與度量信息不足。
PostgreSQL很強大的查詢優(yōu)化器,支持很復(fù)雜的查詢處理。explain返回豐富的信息。提供了一些性能視圖,可以方便的看到發(fā)生在一個表和索引上的select、delete、update、insert統(tǒng)計信息,也可以看到cache命中率。網(wǎng)上有一個開源的pgstatspack工具。
18)序列支持更好
MySQL 不支持多個表從同一個序列中取 id, 而 PostgreSQL 可以。
19)對子查詢支持更好
對子查詢的支持。雖然在很多情況下在SQL語句中使用子查詢效率低下,而且絕大多數(shù)情況下可以使用帶條件的多表連接來替代子查詢,但是子查詢的存在在很多時候仍然不可避免。而且使用子查詢的SQL語句與使用帶條件的多表連接相比具有更高的程序可讀性。幾乎任何數(shù)據(jù)庫的子查詢 (subquery) 性能都比 MySQL 好。
20)增加列更加簡單
MySQL表增加列,基本上是重建表和索引,會花很長時間。PostgreSQL表增加列,只是在數(shù)據(jù)字典中增加表定義,不會重建表.
MySQL相對于PostgreSQL的優(yōu)勢
1)MySQL比PostgreSQL更流行
流行對于一個商業(yè)軟件來說,也是一個很重要的指標(biāo),流行意味著更多的用戶,意味著經(jīng)受了更多的考驗,意味著更好的商業(yè)支持、意味著更多、更完善的文檔資料。易用,很容易安裝。第三方工具,包括可視化工具,讓用戶能夠很容易入門。
2)回滾實現(xiàn)更優(yōu)
innodb的基于回滾段實現(xiàn)的MVCC機制,相對PG新老數(shù)據(jù)一起存放的基于XID的MVCC機制,是占優(yōu)的。新老數(shù)據(jù)一起存放,需要定時觸發(fā)VACUUM,會帶來多余的IO和數(shù)據(jù)庫對象加鎖開銷,引起數(shù)據(jù)庫整體的并發(fā)能力下降。而且VACUUM清理不及時,還可能會引發(fā)數(shù)據(jù)膨脹。
3)在Windows上運行更可靠
與PostgreSQL相比,MySQL更適宜在Windows環(huán)境下運行。MySQL作為一個本地的Windows應(yīng)用程序運行(在 NT/Win2000/WinXP下,是一個服務(wù)),而PostgreSQL是運行在Cygwin模擬環(huán)境下。PostgreSQL在Windows下運行沒有MySQL穩(wěn)定,應(yīng)該是可以想象的。
4)線程模式相比進(jìn)程模式的優(yōu)勢
MySQL使用了線程,而PostgreSQL使用的是進(jìn)程。在不同線程之間的環(huán)境轉(zhuǎn)換和訪問公用的存儲區(qū)域顯然要比在不同的進(jìn)程之間要快得多。
進(jìn)程模式對多CPU利用率比較高。進(jìn)程模式共享數(shù)據(jù)需要用到共享內(nèi)存,而線程模式數(shù)據(jù)本身就是在進(jìn)程空間內(nèi)都是共享的,不同線程訪問只需要控制好線程之間的同步。
線程模式對資源消耗比較少。所以MySQL能支持遠(yuǎn)比PostgreSQL多的更多的連接。但PostgreSQL中有優(yōu)秀的連接池軟件軟件,如pgbouncer和pgpool,所以通過連接池也可以支持很多的連接。
5)權(quán)限設(shè)置上更加完善
MySQL在權(quán)限系統(tǒng)上比PostgreSQL某些方面更為完善。PostgreSQL只支持對于每一個用戶在一個數(shù)據(jù)庫上或一個數(shù)據(jù)表上的 INSERT、SELECT和UPDATE/DELETE的授權(quán),而MySQL允許你定義一整套的不同的數(shù)據(jù)級、表級和列級的權(quán)限。對于列級的權(quán)限, PostgreSQL可以通過建立視圖,并確定視圖的權(quán)限來彌補。MySQL還允許你指定基于主機的權(quán)限,這對于目前的PostgreSQL是無法實現(xiàn)的,但是在很多時候,這是有用的。
6)存儲引擎插件化機制
MySQL的存儲引擎插件化機制,使得它的應(yīng)用場景更加廣泛,比如除了innodb適合事務(wù)處理場景外,myisam適合靜態(tài)數(shù)據(jù)的查詢場景。
7)適應(yīng)24/7運行
MySQL可以適應(yīng)24/7運行。在絕大多數(shù)情況下,你不需要為MySQL運行任何清除程序。PostgreSQL目前仍不完全適應(yīng)24/7運行,這是因為你必須每隔一段時間運行一次VACUUM。
8)更加試用于簡單的場景
PostgreSQL只支持堆表,不支持索引組織表,Innodb只支持索引組織表。
索引組織表的優(yōu)勢:表內(nèi)的數(shù)據(jù)就是按索引的方式組織,數(shù)據(jù)是有序的,如果數(shù)據(jù)都是按主鍵來訪問,那么訪問數(shù)據(jù)比較快。而堆表,按主鍵訪問數(shù)據(jù)時,是需要先按主鍵索引找到數(shù)據(jù)的物理位置。
索引組織表的劣勢:索引組織表中上再加其它的索引時,其它的索引記錄的數(shù)據(jù)位置不再是物理位置,而是主鍵值,所以對于索引組織表來說,主鍵的值不能太大,否則占用的空間比較大。
對于索引組織表來說,如果每次在中間插入數(shù)據(jù),可能會導(dǎo)致索引分裂,索引分裂會大大降低插入的性能。所以對于使用innodb來說,我們一般最好讓主鍵是一個無意義的序列,這樣插入每次都發(fā)生在最后,以避免這個問題。
由于索引組織表是按一個索引樹,一般它訪問數(shù)據(jù)塊必須按數(shù)據(jù)塊之間的關(guān)系進(jìn)行訪問,而不是按物理塊的訪問數(shù)據(jù)的,所以當(dāng)做全表掃描時要比堆表慢很多,這可能在OLTP中不明顯,但在數(shù)據(jù)倉庫的應(yīng)用中可能是一個問題。
總結(jié)
MySQL從一開始就沒有打算做所有事情,因而它在功能方面有一定的局限性,并不能滿足一些先進(jìn)應(yīng)用程序的要求。MySQL對某些功能(例如引用、事務(wù)、審計等)的實現(xiàn)方式使得它與其他的關(guān)系型數(shù)據(jù)庫相比缺少了一些可靠性。對于簡單繁重的讀取操作,使用PostgreSQL可能有點小題大做,同時性能也比MySQL這樣的同類產(chǎn)品要差。除非你需要絕對的數(shù)據(jù)完整性,ACID遵從性或者設(shè)計復(fù)雜,否則PostgreSQL對于簡單的場景而言有點多余。
如何你確定只在MySQL和PostgreSQL中進(jìn)行選擇,以下規(guī)則總是有效的:
如果你的操作系統(tǒng)是Windows,你應(yīng)該使用MySQL。
當(dāng)絕對需要可靠性和數(shù)據(jù)完整性的時候,PostgreSQL是更好的選擇。
如果需要數(shù)據(jù)庫執(zhí)行定制程序,那么可擴展的PostgreSQL是更好的選擇。
你的應(yīng)用處理的是地理數(shù)據(jù),由于R-TREES的存在,你應(yīng)該使用PostgreSQL。
如果你對數(shù)據(jù)庫并不了十分了解,甚至不知道事務(wù)、存儲過程等究竟是什么,你應(yīng)該使用MySQL。
PostgreSQL的主要優(yōu)點:
1、對事務(wù)的支持與MySQL相比,經(jīng)歷了更為徹底的測試。對于一個嚴(yán)肅的商業(yè)應(yīng)用來說,事務(wù)的支持是不可或缺的。
2、MySQL對于無事務(wù)的MyISAM表。采用表鎖定,一個長時間運行的查詢很可能會長時間地阻礙對表的更新。而PostgreSQL不存在這樣的問題。
3、PostgreSQL支持存儲過程,而目前MySQL不支持,對于一個嚴(yán)肅的商業(yè)應(yīng)用來說,作為數(shù)據(jù)庫本身,有眾多的商業(yè)邏輯的存在,此時使用存儲過程可以在較少地增加數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān)的前提下,對這樣的商業(yè)邏輯進(jìn)行封裝,并可以利用數(shù)據(jù)庫服務(wù)器本身的內(nèi)在機制對存儲過程的執(zhí)行進(jìn)行優(yōu)化。此外存儲過程的存在也避免了在網(wǎng)絡(luò)上大量的原始的SQL語句的傳輸,這樣的優(yōu)勢是顯而易見的。
4、對視圖的支持,視圖的存在同樣可以最大限度地利用數(shù)據(jù)庫服務(wù)器內(nèi)在的優(yōu)化機制。而且對于視圖權(quán)限的合理使用,事實上可以提供行級別的權(quán)限,這是MySQL的權(quán)限系統(tǒng)所無法實現(xiàn)的。
5、對觸發(fā)器的支持,觸發(fā)器的存在不可避免的會影響數(shù)據(jù)庫運行的效率,但是與此同時,觸發(fā)器的存在也有利于對商業(yè)邏輯的封裝,可以減少應(yīng)用程序中對同一商業(yè)邏輯的重復(fù)控制。合理地使用觸發(fā)器也有利于保證數(shù)據(jù)的完整性。
6、對約束的支持。約束的作用更多地表現(xiàn)在對數(shù)據(jù)完整性的保證上,合理地使用約束,也可以減少編程的工作量。
鄒銳的回復(fù)比較官方,我就用個軟件攻城獅的口氣解釋一下吧
MySQL用的比較多吧,可能用Mysql的公司比PostgreSQL要多一些,而且MySql的服務(wù)也很多,額,這些其實都不重要,重要的是你的程序端是什么,比喻C#和SqlServer這天生一對,還有MySql和PHP,Oracle 和C++這些配對都挺不錯,當(dāng)然PostgreSQL也比較有名氣,只要寫好Dll或者下載一個組件,C#的WinForm也可以用,可能C++也不錯,當(dāng)然Java把接口做好也可以,但是我對這個數(shù)據(jù)庫不熟悉,我還是比較熟悉MySQL,查詢比較快,這也是很多公司用他的原因,我也用過幾次,但是最后還是選擇了SqlServer,因為很多程序都支持他,數(shù)據(jù)庫的腳步大多一樣,包括什么存儲過程啊,提交事物啊,視圖,索引,觸發(fā)器之類的,只要用好了一個,其他的大多無師自通了,關(guān)鍵還是自己的程序端是什么,功能是什么,數(shù)據(jù)量有多少,相信你也很清楚數(shù)據(jù)庫的關(guān)鍵性,畢竟合適的數(shù)據(jù)庫是程序端一個強大的后盾啊,說了堆沒用的,其實我對PostgreSQL了解不多,他既然能開源自然是有厚底子,MySql的綜合實力應(yīng)該比不上他,畢竟是小數(shù)據(jù)庫,速度也好,使用率也好,都是表面的,PostgreSQL是元老,和SqlServer是一個年代的,敢開源的東西都應(yīng)該得到尊重的,不像SqlServer收費,最后說形象點吧,PostgreSQL是C,MySql是Java;PostgreSQL是HTML,MySql是PHP,PostgreSQL是經(jīng)驗豐富的項目經(jīng)理,Mysql是年輕的軟件工程師...
如果打算為項目選擇一款免費、開源的數(shù)據(jù)庫,那么你可能會在MySQL與PostgreSQL之間猶豫不定。MySQL與PostgreSQL都是免費、開源、強大、且功能豐富的數(shù)據(jù)庫。你主要的問題可能是:哪一個才是最好的開源數(shù)據(jù)庫,MySQL還是PostgreSQL呢?該選擇哪一個開源數(shù)據(jù)庫呢?
在選擇數(shù)據(jù)庫時,你所做的是個長期的決策,因為后面如果再改變決定將是非常困難且代價高昂的。你希望一開始就選擇正確。兩個流行的開源數(shù)據(jù)庫MySQL與PostgreSQL常常成為最后要選擇的產(chǎn)品。對這兩個開源數(shù)據(jù)庫的高層次概覽將會有助于你選擇最適合自己需要的。
MySQL
MySQL相對來說比較年輕,首度出現(xiàn)在1994年。它聲稱自己是最流行的開源數(shù)據(jù)庫。MySQL就是LAMP(用于Web開發(fā)的軟件包,包括Linux、Apache及Perl/PHP/Python)中的M。構(gòu)建在LAMP棧之上的大多數(shù)應(yīng)用都會使用MySQL,包括那些知名的應(yīng)用,如WordPress、Drupal、Zend及phpBB等。
一開始,MySQL的設(shè)計目標(biāo)是成為一個快速的Web服務(wù)器后端,使用快速的索引序列訪問方法(ISAM),不支持ACID。經(jīng)過早期快速的發(fā)展之后,MySQL開始支持更多的存儲引擎,并通過InnoDB引擎實現(xiàn)了ACID。MySQL還支持其他存儲引擎,提供了臨時表的功能(使用MEMORY存儲引擎),通過MyISAM引擎實現(xiàn)了高速讀的數(shù)據(jù)庫,此外還有其他的核心存儲引擎與第三方引擎。
MySQL的文檔非常豐富,有很多質(zhì)量不錯的免費參考手冊、圖書與在線文檔,還有來自于Oracle和第三方廠商的培訓(xùn)與支持。
MySQL近幾年經(jīng)歷了所有權(quán)的變更和一些頗具戲劇性的事件。它最初是由MySQL AB開發(fā)的,然后在2008年以10億美金的價格賣給了Sun公司,Sun公司又在2010年被Oracle收購。Oracle支持MySQL的多個版本:Standard、Enterprise、Classic、Cluster、Embedded與Community。其中有一些是免費下載的,另外一些則是收費的。其核心代碼基于GPL許可,對于那些不想使用GPL許可的開發(fā)者與廠商來說還有商業(yè)許可可供使用。
現(xiàn)在,基于最初的MySQL代碼還有更多的數(shù)據(jù)庫可供選擇,因為幾個核心的MySQL開發(fā)者已經(jīng)發(fā)布了MySQL分支。最初的MySQL創(chuàng)建者之一Michael "Monty" Widenius貌似后悔將MySQL賣給了Sun公司,于是又開發(fā)了他自己的MySQL分支MariaDB,它是免費的,基于GPL許可。知名的MySQL開發(fā)者Brian Aker所創(chuàng)建的分支Drizzle對其進(jìn)行了大量的改寫,特別針對多CPU、云、網(wǎng)絡(luò)應(yīng)用與高并發(fā)進(jìn)行了優(yōu)化。
PostgreSQL
PostgreSQL標(biāo)榜自己是世界上最先進(jìn)的開源數(shù)據(jù)庫。PostgreSQL的一些粉絲說它能與Oracle相媲美,而且沒有那么昂貴的價格和傲慢的客服。它擁有很長的歷史,最初是1985年在加利福尼亞大學(xué)伯克利分校開發(fā)的,作為Ingres數(shù)據(jù)庫的后繼。
PostgreSQL是完全由社區(qū)驅(qū)動的開源項目,由全世界超過1000名貢獻(xiàn)者所維護。它提供了單個完整功能的版本,而不像MySQL那樣提供了多個不同的社區(qū)版、商業(yè)版與企業(yè)版。PostgreSQL基于自由的BSD/MIT許可,組織可以使用、復(fù)制、修改和重新分發(fā)代碼,只需要提供一個版權(quán)聲明即可。
可靠性是PostgreSQL的最高優(yōu)先級。它以堅如磐石的品質(zhì)和良好的工程化而聞名,支持高事務(wù)、任務(wù)關(guān)鍵型應(yīng)用。PostgreSQL的文檔非常精良,提供了大量免費的在線手冊,還針對舊版本提供了歸檔的參考手冊。PostgreSQL的社區(qū)支持是非常棒的,還有來自于獨立廠商的商業(yè)支持。
數(shù)據(jù)一致性與完整性也是PostgreSQL的高優(yōu)先級特性。PostgreSQL是完全支持ACID特性的,它對于數(shù)據(jù)庫訪問提供了強大的安全性保證,充分利用了企業(yè)安全工具,如Kerberos與OpenSSL等。你可以定義自己的檢查,根據(jù)自己的業(yè)務(wù)規(guī)則確保數(shù)據(jù)質(zhì)量。在眾多的管理特性中,point-in-time recovery(PITR)是非常棒的特性,這是個靈活的高可用特性,提供了諸如針對失敗恢復(fù)創(chuàng)建熱備份以及快照與恢復(fù)的能力。但這并不是PostgreSQL的全部,項目還提供了幾個方法來管理PostgreSQL以實現(xiàn)高可用、負(fù)載均衡與復(fù)制等,這樣你就可以使用適合自己特定需求的功能了。
本期目錄
DB-Engines數(shù)據(jù)庫排行榜
新聞快訊
一、RDBMS家族
二、NoSQL家族
三、NewSQL家族
四、時間序列
五、大數(shù)據(jù)生態(tài)圈
六、國產(chǎn)數(shù)據(jù)庫概覽
七、云數(shù)據(jù)庫
八、推出dbaplus Newsletter的想法
九、感謝名單
為方便閱讀、重點呈現(xiàn),本期Newsletter(2019年1月)將對各個板塊的內(nèi)容進(jìn)行精簡。需要閱讀全文的同學(xué)可點擊文末 【閱讀原文】 或登錄
進(jìn)行下載。
DB-Engines數(shù)據(jù)庫排行榜
以下取自2019年1月的數(shù)據(jù),具體信息可以參考,數(shù)據(jù)僅供參考。
DB-Engines排名的數(shù)據(jù)依據(jù)5個不同的因素:
新聞快訊
1、2018年9月24日,微軟公布了SQL Server2019預(yù)覽版,SQL Server 2019將結(jié)合Spark創(chuàng)建統(tǒng)一數(shù)據(jù)平臺。
2、2018年10月5日,ElasticSearch在美國紐約證券交易所上市。
3、亞馬遜放棄甲骨文數(shù)據(jù)庫軟件,導(dǎo)致最大倉庫之一在黃金時段宕機。受此消息影響,亞馬遜盤前股價小幅跳水,跌超2%。
4、2018年10月31日,Percona發(fā)布了Percona Server 8.0 RC版本,發(fā)布對MongoDB 4.0的支持,發(fā)布對XtraBackup測試第二個版本。
5、2018年10月31日,Gartner陸續(xù)發(fā)布了2018年的數(shù)據(jù)庫系列報告,包括《數(shù)據(jù)庫魔力象限》、《數(shù)據(jù)庫核心能力》以及《數(shù)據(jù)庫推薦報告》。
今年的總上榜數(shù)據(jù)庫產(chǎn)品達(dá)到了5家,分別來自:阿里云,華為,巨杉數(shù)據(jù)庫,騰訊云,星環(huán) 科技 。其中阿里云和巨杉數(shù)據(jù)庫已經(jīng)連續(xù)兩年入選。
6、2018年11月初,Neo4j宣布完成E輪8000萬美元融資。11月15日,Neo4j宣布企業(yè)版徹底閉源:
7、2019年1月8日,阿里巴巴以1.033億美元(9000萬歐元)的價格收購了Apache Flink商業(yè)公司DataArtisans。
8、2019年1月11日早間消息,亞馬遜宣布推出云數(shù)據(jù)庫軟件,亞馬遜和MongoDB將會直接競爭。
RDBMS家族
Oracle 發(fā)布18.3版本
2018年7月,Oracle Database 18.3通用版開始提供下載。我們可以將Oracle Database 18c視為采用之前發(fā)布模式的Oracle Database 12c第2版的第一個補丁集。未來,客戶將不再需要等待多年才能用上最新版Oracle數(shù)據(jù)庫,而是每年都可以期待新數(shù)據(jù)庫特性和增強。Database 19c將于2019年Q1率先在Oracle cloud上發(fā)布云版本。
Oracle Database 18c及19c部分關(guān)鍵功能:
1、性能
2、多租戶,大量功能增強及改進(jìn),大幅節(jié)省成本和提高敏捷性
3、高可用
4、數(shù)據(jù)倉庫和大數(shù)據(jù)
MySQL發(fā)布8.0.13版本
1、賬戶管理
經(jīng)過配置,修改密碼時,必須帶上原密碼。在之前的版本,用戶登錄之后,就可以修改自己的密碼。這種方式存在一定安全風(fēng)險。比如用戶登錄上數(shù)據(jù)庫后,中途離開一段時間,那么非法用戶可能會修改密碼。由參數(shù)password_require_current控制。
2、配置
Innodb表必須有主鍵。在用戶沒有指定主鍵時,系統(tǒng)會生成一個默認(rèn)的主鍵。但是在主從復(fù)制的場景下,默認(rèn)的主鍵,會對叢庫應(yīng)用速度帶來致命的影響。如果設(shè)置sql_require_primary_key,那么數(shù)據(jù)庫會強制用戶在創(chuàng)建表、修改表時,加上主鍵。
3、字段默認(rèn)值
BLOB、TEXT、GEOMETRY和JSON字段可以指定默認(rèn)值了。
4、優(yōu)化器
1)Skip Scan
非前綴索引也可以用了。
之前的版本,任何沒有帶上f1字段的查詢,都沒法使用索引。在新的版本中,它可以忽略前面的字段,讓這個查詢使用到索引。其實現(xiàn)原理就是把(f1 = 1 AND f2 40) 和(f1 = 2 AND f2 40)的查詢結(jié)果合并。
2)函數(shù)索引
之前版本只能基于某個列或者多個列加索引,但是不允許在上面做計算,如今這個限制消除了。
5、SQL語法
GROUP BY ASC和GROUP BY DESC語法已經(jīng)被廢棄,要想達(dá)到類似的效果,請使用GROUP BY ORDER BY ASC和GROUP BY ORDER BY DESC。
6、功能變化
1)設(shè)置用戶變量,請使用SET語句
如下類型語句將要被廢棄SELECT @var, @var:=@var+1。
2)新增innodb_fsync_threshold
該變量是控制文件刷新到磁盤的速率,防止磁盤在短時間內(nèi)飽和。
3)新增會話級臨時表空間
在以往的版本中,當(dāng)執(zhí)行SQL時,產(chǎn)生的臨時表都在全局表空間ibtmp1中,及時執(zhí)行結(jié)束,臨時表被釋放,空間不會被回收。新版本中,會為session從臨時表空間池中分配一個臨時表空間,當(dāng)連接斷開時,臨時表空間的磁盤空間被回收。
4)在線切換Group Replication的狀態(tài)
5)新增了group_replication_member_expel_timeout
之前,如果某個節(jié)點被懷疑有問題,在5秒檢測期結(jié)束之后,那么就直接被驅(qū)逐出這個集群。即使該節(jié)點恢復(fù)正常時,也不會再被加入集群。那么,瞬時的故障,會把某些節(jié)點驅(qū)逐出集群。
group_replication_member_expel_timeout讓管理員能更好的依據(jù)自身的場景,做出最合適的配置(建議配置時間小于一個小時)。
MariaDB 10.3版本功能展示
1、MariaDB 10.3支持update多表ORDER BY and LIMIT
1)update連表更新,limit語句
update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3;
MySQL 8.0直接報錯
MariaDB 10.3更新成功
2)update連表更新,ORDER BY and LIMIT語句
update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3;
MySQL 8.0直接報錯
MariaDB 10.3更新成功
參考:
2、MariaDB10.3增補AliSQL補丁——安全執(zhí)行Online DDL
Online DDL從名字上看很容易誤導(dǎo)新手,以為不論什么情況,修改表結(jié)構(gòu)都不會鎖表,理想很豐滿,現(xiàn)實很骨感,注意這個坑!
有以下兩種情況執(zhí)行DDL操作會鎖表的,Waiting for table metadata lock(元數(shù)據(jù)表鎖):
針對第二種情況,MariaDB10.3增補AliSQL補丁-DDL FAST FAIL,讓其DDL操作快速失敗。
例:
如果線上有某個慢SQL對該表進(jìn)行操作,可以使用WAIT n(以秒為單位設(shè)置等待)或NOWAIT在語句中顯式設(shè)置鎖等待超時,在這種情況下,如果無法獲取鎖,語句將立即失敗。 WAIT 0相當(dāng)于NOWAIT。
參考:
3、MariaDB Window Functions窗口函數(shù)分組取TOP N記錄
窗口函數(shù)在MariaDB10.2版本里實現(xiàn),其簡化了復(fù)雜SQL的撰寫,提高了可讀性。
參考:
Percona Server發(fā)布8.0 GA版本
2018年12月21日,Percona發(fā)布了Percona Server 8.0 GA版本。
在支持MySQL8.0社區(qū)的基礎(chǔ)版上,Percona Server for MySQL 8.0版本中帶來了許多新功能:
1、安全性和合規(guī)性
2、性能和可擴展性
3、可觀察性和可用性
Percona Server for MySQL 8.0中將要被廢用功能:
Percona Server for MySQL 8.0中刪除的功能:
RocksDB發(fā)布V5.17.2版本
2018年10月24日,RocksDB發(fā)布V5.17.2版本。
RocksDB是Facebook在LevelDB基礎(chǔ)上用C++寫的高效內(nèi)嵌式K/V存儲引擎。相比LevelDB,RocksDB提供了Column-Family,TTL,Transaction,Merge等方面的支持。目前MyRocks,TiKV等底層的存儲都是基于RocksDB來構(gòu)建。
PostgreSQL發(fā)布11版本
2018年10月18日,PostgreSQL 11發(fā)布。
1、PostgreSQL 11的重大增強
2、PostgreSQL 插件動態(tài)
1)分布式插件citus發(fā)布 8.1
citus是PostgreSQL的一款sharding插件,目前國內(nèi)蘇寧、鐵總、探探有較大量使用案例。
2)地理信息插件postgis發(fā)布2.5.1
PostGIS是專業(yè)的時空數(shù)據(jù)庫插件,在測繪、航天、氣象、地震、國土資源、地圖等時空專業(yè)領(lǐng)域應(yīng)用廣泛。同時在互聯(lián)網(wǎng)行業(yè)也得到了對GIS有性能、功能深度要求的客戶青睞,比如共享出行、外賣等客戶。
3)時序插件timescale發(fā)布1.1.1
timescale是PostgreSQL的一款時序數(shù)據(jù)庫插件,在IoT行業(yè)中有非常好的應(yīng)用。github star數(shù)目前有5000多,是一個非?;鸨牟寮?。
4)流計算插件 pipelinedb 正式插件化
Pipelinedb是PostgreSQL的一款流計算插件,使用這個創(chuàng)建可以對高速寫入的數(shù)據(jù)進(jìn)行實時根據(jù)定義的聚合規(guī)則進(jìn)行聚合(支持概率計算),實時根據(jù)定義的規(guī)則觸發(fā)事件(支持事件處理函數(shù)的自定義)。可用于IoT,監(jiān)控,F(xiàn)EED實時計算等場景。
3、PostgreSQL衍生開源產(chǎn)品動態(tài)
1)agensgraph發(fā)布 2.0.0版本
agensgraph是兼容PostgreSQL、opencypher的專業(yè)圖數(shù)據(jù)庫,適合圖式關(guān)系的管理。
2)gpdb發(fā)布5.15
gpdb是兼容PostgreSQL的mpp數(shù)據(jù)庫,適合OLAP場景。近兩年,gpdb一直在追趕PostgreSQL的社區(qū)版本,預(yù)計很快會追上10的PostgreSQL,在TP方面的性能也會得到顯著提升。
3)antdb發(fā)布3.2
antdb是以Postgres-XC為基礎(chǔ)開發(fā)的一款PostgreSQL sharding數(shù)據(jù)庫,亞信主導(dǎo)開發(fā),開源,目前主要服務(wù)于亞信自有客戶。
4)遷移工具M(jìn)TK發(fā)布52版本
MTK是EDB提供的可以將Oracle、PostgreSQL、MySQL、MSSQL、Sybase數(shù)據(jù)庫遷移到PostgreSQL, PPAS的產(chǎn)品,遷移速度可以達(dá)到100萬行/s以上。
DB2發(fā)布 11.1.4.4版本
DB2最新發(fā)布Mod Pack 4 and Fix Pack 4,包含以下幾方面的改動及增強:
1、性能
2、高可用
3、管理視圖
4、應(yīng)用開發(fā)方面
5、聯(lián)邦功能
6、pureScale
NoSQL家族
Redis發(fā)布5.0.3版本
MongoDB升級更新MongoDB Mobile和MongoDB Stitch
2018年11月21日,MongoDB升級更新MongoDB Mobile和MongoDB Stitch,助力開發(fā)人員提升工作效率。
MongoDB 公司日前發(fā)布了多項新產(chǎn)品功能,旨在更好地幫助開發(fā)人員在世界各地管理數(shù)據(jù)。通過利用存儲在移動設(shè)備和后臺數(shù)據(jù)庫的數(shù)據(jù)之間的實時、自動的同步特性,MongoDB Mobile通用版本助力開發(fā)人員構(gòu)建更快捷、反應(yīng)更迅速的應(yīng)用程序。此前,這只能通過在移動應(yīng)用內(nèi)部安裝一個可供選擇或限定功能的數(shù)據(jù)庫來實現(xiàn)。
MongoDB Mobile在為客戶提供隨處運行的自由度方面更進(jìn)了一步。用戶在iOS和安卓終端設(shè)備上可擁有MongoDB所有功能,將網(wǎng)絡(luò)邊界擴展到其物聯(lián)網(wǎng)資產(chǎn)范疇。應(yīng)用系統(tǒng)還可以使用MongoDB Stitch的軟件開發(fā)包訪問移動客戶端或后臺數(shù)據(jù),幫助開發(fā)人員通過他們希望的任意方式查詢移動終端數(shù)據(jù)和物聯(lián)網(wǎng)數(shù)據(jù),包括本地讀寫、本地JSON存儲、索引和聚合。通過Stitch移動同步功能(現(xiàn)可提供beta版),用戶可以自動對保存在本地的數(shù)據(jù)以及后臺數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行同步。
本期新秀:Cassandra發(fā)布3.11.3版本
2018年8月11日,Cassandra發(fā)布正式版3.11.3。
Apache Cassandra是一款開源分布式NoSQL數(shù)據(jù)庫系統(tǒng),使用了基于Google BigTable的數(shù)據(jù)模型,與面向行(row)的傳統(tǒng)關(guān)系型數(shù)據(jù)庫或鍵值存儲key-value數(shù)據(jù)庫不同,Cassandra使用的是寬列存儲模型(Wide Column Stores)。與BigTable和其模仿者HBase不同,數(shù)據(jù)并不存儲在分布式文件系統(tǒng)如GFS或HDFS中,而是直接存于本地。
Cassandra的系統(tǒng)架構(gòu)與Amazon DynamoDB類似,是基于一致性哈希的完全P2P架構(gòu),每行數(shù)據(jù)通過哈希來決定應(yīng)該存在哪個或哪些節(jié)點中。集群沒有master的概念,所有節(jié)點都是同樣的角色,徹底避免了整個系統(tǒng)的單點問題導(dǎo)致的不穩(wěn)定性,集群間的狀態(tài)同步通過Gossip協(xié)議來進(jìn)行P2P的通信。
3.11.3版本的一些bug fix和改進(jìn):
NewSQL家族
TiDB 發(fā)布2.1.2版本
2018 年 12 月 22 日,TiDB 發(fā)布 2.1.2 版,TiDB-Ansible 相應(yīng)發(fā)布 2.1.2 版本。該版本在 2.1.1 版的基礎(chǔ)上,對系統(tǒng)兼容性、穩(wěn)定性做出了改進(jìn)。
TiDB 是一款定位于在線事務(wù)處理/在線分析處理( HTAP: Hybrid Transactional/Analytical Processing)的融合型數(shù)據(jù)庫產(chǎn)品。除了底層的 RocksDB 存儲引擎之外,分布式SQL層、分布式KV存儲引擎(TiKV)完全自主設(shè)計和研發(fā)。
TiDB 完全開源,兼容MySQL協(xié)議和語法,可以簡單理解為一個可以無限水平擴展的MySQL,并且提供分布式事務(wù)、跨節(jié)點 JOIN、吞吐和存儲容量水平擴展、故障自恢復(fù)、高可用等優(yōu)異的特性;對業(yè)務(wù)沒有任何侵入性,簡化開發(fā),利于維護和平滑遷移。
TiDB:
PD:
TiKV:
Tools:
1)TiDB-Lightning
2)TiDB-Binlog
EsgynDB發(fā)布R2.5版本
2018年12月22日,EsgynDB R2.5版本正式發(fā)布。
作為企業(yè)級產(chǎn)品,EsgynDB 2.5向前邁進(jìn)了一大步,它擁有以下功能和改進(jìn):
CockroachDB發(fā)布2.1版本
2018年10月30日,CockroachDB正式發(fā)布2.1版本,其新增特性如下:
新增企業(yè)級特性:
新增SQL特性:
新增內(nèi)核特性:
Admin UI增強:
時間序列
本期新秀:TimescaleDB發(fā)布1.0版本
10月底,TimescaleDB 1.0宣布正式推出,官方表示該版本已可用于生產(chǎn)環(huán)境,支持完整SQL和擴展。
TimescaleDB是基于PostgreSQL數(shù)據(jù)庫開發(fā)的一款時序數(shù)據(jù)庫,以插件化的形式打包提供,隨著PostgreSQL的版本升級而升級,不會因為另立分支帶來麻煩。
TimescaleDB架構(gòu):
數(shù)據(jù)自動按時間和空間分片(chunk)
更新亮點:
大數(shù)據(jù)生態(tài)圈
Hadoop發(fā)布2.9.2版本
2018年11月中旬,Hadoop在2.9分支上發(fā)布了新的2.9.2版本,該版本進(jìn)行了204個大大小小的變更,主要變更如下:
Greenplum 發(fā)布5.15版本
Greenplum最新的5.15版本中發(fā)布了流式數(shù)據(jù)加載工具。
該版本中的Greenplum Streem Server組件已經(jīng)集成了Kafka流式加載功能,并通過了Confluent官方的集成認(rèn)證,其支持的主要功能如下:
國產(chǎn)數(shù)據(jù)庫概覽
K-DB發(fā)布數(shù)據(jù)庫一體機版
2018年11月7日,K-DB發(fā)布了數(shù)據(jù)庫一體機版。該版本更新情況如下:
OceanBase遷移服務(wù)發(fā)布1.0版本
1月4日,OceanBase 正式發(fā)布OMS遷移服務(wù)1.0版本。
以下內(nèi)容包含 OceanBase 遷移服務(wù)的重要特性和功能:
SequoiaDB發(fā)布3.0.1新版本
1、架構(gòu)
1)完整計算存儲分離架構(gòu),兼容MySQL協(xié)議、語法
計算存儲分離體系以松耦合的方式將計算與存儲層分別部署,通過標(biāo)準(zhǔn)接口或插件對各個模塊和組件進(jìn)行無縫替換,在計算層與存儲層均可實現(xiàn)自由的彈性伸縮。
SequoiaDB巨杉數(shù)據(jù)庫“計算-存儲分離”架構(gòu)詳細(xì)示意
用戶可以根據(jù)自身業(yè)務(wù)特征選擇面向交易的SQL解析器(例如MySQL或PGSQL)或面向統(tǒng)計分析的執(zhí)行引擎(例如SparkSQL)。眾所周知,使用不同的SQL優(yōu)化與執(zhí)行方式,數(shù)據(jù)庫的訪問性能可能會存在上千上萬倍的差距。計算存儲分離的核心思想便是在數(shù)據(jù)存儲層面進(jìn)行一體化存儲,在計算層面則利用每種執(zhí)行引擎的特點針對不同業(yè)務(wù)場景進(jìn)行選擇和優(yōu)化,用戶可以在存儲層進(jìn)行邏輯與物理的隔離,將面向高頻交易的前端業(yè)務(wù)與面向高吞吐量的統(tǒng)計分析使用不同的硬件進(jìn)行存儲,確保在多類型數(shù)據(jù)訪問時互不干擾,以真正達(dá)到生產(chǎn)環(huán)境可用的多租戶與HTAP能力。
2、其他更新信息
1)接口變更:
2)主要特性:
云數(shù)據(jù)庫
本期新秀:騰訊發(fā)布數(shù)據(jù)庫CynosDB,開啟公測
1、News
1)騰訊云數(shù)據(jù)庫MySQL2018年重大更新:
2)騰訊云數(shù)據(jù)庫MongoDB2018年重大更新:
3)騰訊云數(shù)據(jù)庫Redis/CKV+2018年重大更新:
4)騰訊云數(shù)據(jù)庫CTSDB2018年重大更新:
2、Redis 4.0集群版商業(yè)化上線
2018年10月,騰訊云數(shù)據(jù)庫Redis 4.0集群版完成邀測、公測、商業(yè)化三個迭代,在廣州、上海、北京正式全量商業(yè)化上線。
產(chǎn)品特性:
使用場景:
官網(wǎng)文檔:
3、騰訊自研數(shù)據(jù)庫CynosDB發(fā)布,開啟公測
2018年11月22日,騰訊云召開新一代自研數(shù)據(jù)庫CynosDB發(fā)布會,業(yè)界第一款全面兼容市面上兩大最主流的開源數(shù)據(jù)庫MySQL和PostgreSQL的高性能企業(yè)級分布式云數(shù)據(jù)庫。
本期新秀:京東云DRDS發(fā)布1.0版本
12月24日,京東云分布式關(guān)系型數(shù)據(jù)庫DRDS正式發(fā)布1.0版本。
DRDS是京東云精心自研的數(shù)據(jù)庫中間件產(chǎn)品,獲得了2018年 ”可信云技術(shù)創(chuàng)新獎”。DRDS可實現(xiàn)海量數(shù)據(jù)下的自動分庫分表,具有高性能,分布式,彈性升級,兼容MySQL等優(yōu)點,適用于高并發(fā)、大規(guī)模數(shù)據(jù)的在線交易, 歷史 數(shù)據(jù)查詢,自動數(shù)據(jù)分片等業(yè)務(wù)場景,歷經(jīng)多次618,雙十一的考驗,已經(jīng)在京東集團內(nèi)大規(guī)模使用。
京東云DRDS產(chǎn)品有以下主要特性
1)自動分庫分表
通過簡單的定義即可自動實現(xiàn)分庫分表,將數(shù)據(jù)實際存放在多個MySQL實例的數(shù)據(jù)庫中,但呈現(xiàn)給應(yīng)用程序的依舊是一張表,對業(yè)務(wù)透明,應(yīng)用程序幾乎無需改動,實現(xiàn)了對數(shù)據(jù)庫存儲和處理能力的水平擴展。
2)分布式架構(gòu)
基于分布式架構(gòu)的集群方案,多個對等節(jié)點同時對外提供服務(wù),不但可有效規(guī)避服務(wù)的單點故障,而且更加容易擴展。
3)超強性能
具有極高的處理能力,雙節(jié)點即可支持?jǐn)?shù)萬QPS,滿足用戶超大規(guī)模處理能力的需求。
4)兼容MySQL
兼容絕大部分MySQL語法,包括MySQL語法、數(shù)據(jù)類型、索引、常用函數(shù)、排序、關(guān)聯(lián)等DDL,DML語句,使用成本低。
參考鏈接:
RadonDB發(fā)布1.0.3版本
2018年12月26日,MyNewSQL領(lǐng)域的RadonDB云數(shù)據(jù)庫發(fā)布1.0.3版本。
推出dbaplus Newsletter的想法
dbaplus Newsletter旨在向廣大技術(shù)愛好者提供數(shù)據(jù)庫行業(yè)的最新技術(shù)發(fā)展趨勢,為社區(qū)的技術(shù)發(fā)展提供一個統(tǒng)一的發(fā)聲平臺。為此,我們策劃了RDBMS、NoSQL、NewSQL、時間序列、大數(shù)據(jù)生態(tài)圈、國產(chǎn)數(shù)據(jù)庫、云數(shù)據(jù)庫等幾個版塊。
我們不以商業(yè)宣傳為目的,不接受任何商業(yè)廣告宣傳,嚴(yán)格審查信息源的可信度和準(zhǔn)確性,力爭為大家提供一個純凈的技術(shù)學(xué)習(xí)環(huán)境,歡迎大家監(jiān)督指正。
至于Newsletter發(fā)布的周期,目前計劃是每三個月左右會做一次跟進(jìn), 下期計劃時間是2019年4月14日~4月25日, 如果有相關(guān)的信息提供請發(fā)送至郵箱:newsletter@dbaplus.cn
感謝名單
最后要感謝那些提供寶貴信息和建議的專家朋友,排名不分先后。
往期回顧:
↓↓別忘了點這里下載 2019年1月 完整版Newsletter 哦~