為什么要使用數(shù)據(jù)庫
因為使用io流文件存儲數(shù)據(jù)有很多弊端:1、文件存儲數(shù)據(jù)存儲效率低;2、不管存還取操作比較麻煩3、一般只能保存小量字符串數(shù)據(jù)等。為了解決這些弊端,才有數(shù)據(jù)庫的出現(xiàn),使用數(shù)據(jù)庫存儲數(shù)據(jù)就可以很好的解決這些弊端。
什么是DB
DB的全稱是data base,即數(shù)據(jù)庫的意思。數(shù)據(jù)庫實際上就是一個文件集合,是一個存儲數(shù)據(jù)的倉庫,本質(zhì)就是一個文件系統(tǒng),數(shù)據(jù)庫是按照特定的格式把數(shù)據(jù)存儲起來,用戶可以對存儲的數(shù)據(jù)進行增刪改查操作;
什么是DBMS
DBMS的全稱是Database Management System,即數(shù)據(jù)庫管理系統(tǒng)的意思,是一個軟件,用來管理數(shù)據(jù)庫文件的軟件,用戶可以訪問DBMS對數(shù)據(jù)進行增刪改查操作,常見DBMS有: MySQL、oracle、DB2、sqlite、sqlserver等
數(shù)據(jù)庫的分類
關(guān)系型數(shù)據(jù)庫: 經(jīng)過數(shù)學理論驗證 可以保存現(xiàn)實生活中的各種關(guān)系數(shù)據(jù), 數(shù)據(jù)庫中存儲數(shù)據(jù)以表為單位;
非關(guān)系型數(shù)據(jù)庫:通常用來解決某些特定的需求如:數(shù)據(jù)緩存,高并發(fā)訪問。 存儲數(shù)據(jù)的形式有多種,舉例:Redis數(shù)據(jù)庫:通過鍵值對的形式存儲數(shù)據(jù);
主流關(guān)系型數(shù)據(jù)庫簡介
MySQL: 08年被sun公司收購09年sun被oracle收購,開源mf,到oracle發(fā)布了5.0版本(使用了oracle核心技術(shù) 性能提高30%),因為Oracle數(shù)據(jù)庫地位受到威脅,計劃把mysql閉源,原mysql作者們不干了,原程序員出去單干,發(fā)布了MariaDB數(shù)據(jù)庫、名字是因為作者女兒叫Maria ,市場排名第一;
Oracle:閉源、貴、性能高,市場排名第二;
SQLServer:微軟公司的產(chǎn)品,市場排名第三,主要應用在.net(C#)開發(fā)的網(wǎng)站中;
DB2:IBM公司有做網(wǎng)站的完整解決方案(操作系統(tǒng),we服務器(如tomcat),數(shù)據(jù)庫等)主要應用在銀行等國有大型企業(yè)中;
sqlite:輕量級數(shù)據(jù)庫,只有幾十k,一般應用在嵌入式和移動設(shè)備中;
開源和閉源的區(qū)別
開源:開發(fā)源代碼,盈利方式靠賣服務,賺錢慢少),用戶群大,大牛程序員會無償幫著升級維護;
閉源:不開放源代碼,盈利方式賣產(chǎn)品+服務,賺錢快多,大牛們各種攻擊找漏洞;
什么樣的數(shù)據(jù)庫測試才更具參考價值
數(shù)據(jù)庫性能評測不能“跑偏”。
以TPC-C測試為例,國際數(shù)據(jù)庫巨頭Oracle的測試成績停留在九年前,之后并無再參與到TPC-C的測試之中。這不禁讓人思考,什么樣的數(shù)據(jù)庫測試才更會更具實際參考價值?
顯然,對于各個行業(yè)用戶而言,更加重視的是一些貼近行業(yè)真實業(yè)務場景的性能和功能測試,而不是各種刷榜的評測。以金融行業(yè)為例,金融行業(yè)為苛刻的業(yè)務需求,決定了數(shù)據(jù)庫產(chǎn)品需要在功能、性能、高可靠性、安全性、兼容性、生態(tài)等方面需要有足夠的支撐能力,針對包括金融行業(yè)在內(nèi)的數(shù)據(jù)庫測試顯然容易更加獲得用戶的認可。
在國內(nèi)金融行業(yè)的數(shù)據(jù)庫相關(guān)測試里,中金國盛的金融行業(yè)標準符合性試點測評是金融行業(yè)中當之無愧的權(quán)威評測。中金國盛認證中心是經(jīng)國家認證認可監(jiān)督管理委員會批準,國內(nèi)首家從事境內(nèi)金融業(yè)服務和產(chǎn)品的質(zhì)量安全管理的專業(yè)認證機構(gòu),其相關(guān)評測結(jié)果和認證獲得了國際互認協(xié)議集團成員國家和地區(qū)的廣泛認可。中金國盛金融行業(yè)標準符合性試點測評涵蓋了數(shù)據(jù)庫環(huán)境搭建、環(huán)境監(jiān)測、語法支持、安全支持、擴展、性能,容災等金融級數(shù)據(jù)庫要求的關(guān)鍵能力項目。
例如,中金國盛金融行業(yè)標準符合性試點測評會針對關(guān)系型分布式數(shù)據(jù)庫在金融行業(yè)業(yè)務特點下的基本功能進行測試,包括分布式下存取事務腳本,滿足對數(shù)據(jù)操作的原子性、數(shù)據(jù)對象的隔離性、過程的一致性、全局一致性;測試是否滿足ANSI SQL 99/2003,支持復雜SQL,函數(shù)索引,視圖,存儲過程,序列,字符集,模式管理,主鍵約束,觸發(fā)器,分區(qū)表,JAVA/C UDF,死鎖,故障診斷,災難恢復,閃回數(shù)據(jù),數(shù)據(jù)安全,加密,用戶權(quán)限管理等金融核心交易型數(shù)據(jù)庫應該具備的功能等。
此外,該測評還會針對金融行業(yè)為看重的可靠性進行評測,包括在線備份、離線備份、全量和增量備份、磁盤備份、數(shù)據(jù)定期自動備份等備份功能,同城雙活,兩地三中心等高等級容災的測試。而針對國內(nèi)金融機構(gòu)用戶量普遍達到千萬級的情況,中金國盛認證中心重要會針對數(shù)據(jù)庫的性能進行重點測試,包括數(shù)據(jù)庫的單機內(nèi)核能力是否足夠強勁;分布式環(huán)境下,數(shù)據(jù)庫的線性擴展能力和性能擴展比,針對數(shù)據(jù)庫在高并發(fā)評測,對于金融行業(yè)秒殺、搶購等業(yè)務場景的數(shù)據(jù)訪問極具參考價值。
針對目前國內(nèi)金融機構(gòu)因為歷史原因普遍存在多數(shù)據(jù)庫品牌的情況,中金國盛認證中心還會針對數(shù)據(jù)庫的異構(gòu)數(shù)據(jù)庫兼容和遷移能力進行測試,設(shè)置被測對象數(shù)據(jù)庫與異構(gòu)數(shù)據(jù)庫的同步關(guān)系,然后在被測對象中執(zhí)行數(shù)據(jù)的修改、插入操作,驗證了相關(guān)操作可自動同步至其他異構(gòu)數(shù)據(jù)庫的功能。
在近一期的評測里,華為GaussDB成為中國數(shù)據(jù)庫品牌的突出代表。經(jīng)中金國盛認證中心檢測, 根據(jù)金融行業(yè)標準《分布式數(shù)據(jù)庫技術(shù)金融應用規(guī)范(草案稿)》、中金國盛企業(yè)標準《分布式數(shù)據(jù)庫技術(shù)金融應用檢測規(guī)范(試行)》,基于華為鯤鵬處理器和通用CPU的華為GaussDB數(shù)據(jù)庫率先通過本次檢測,82個檢測項全部為“符合”,在功能性、性能、安全性、可靠性、穩(wěn)定性等方面都符合金融行業(yè)的規(guī)范要求。
具體到詳細的測試結(jié)果,GaussDB在功能性、安全性、災難恢復及性能方面均符合檢測規(guī)范要求。在銀行批量結(jié)息業(yè)務測試中,GaussDB功能性、穩(wěn)定性等均滿足銀行批量結(jié)息業(yè)務需求,性能甚至優(yōu)于業(yè)界領(lǐng)先數(shù)據(jù)庫30%以上。在銀行信用卡代授權(quán)業(yè)務測試中,GaussDB的功能性、穩(wěn)定性同樣滿足要求,其單節(jié)點的性能與業(yè)界領(lǐng)先數(shù)據(jù)庫持平,分布式環(huán)境下,GaussDB性能擴展比超過0.8。
實際上,在性能評測方面,目前國內(nèi)一些銀行及華為分別進行基于TaiShan服務器和通用CPU服務器的TPC-C比拼測試,證明GaussDB在TaiShan服務器上性能表現(xiàn)較同等通用CPU服務器提高約20%。在華為基于TaiShan服務器16節(jié)點的TPC-C標準測試,性能達到千萬級tpmC。
這個數(shù)據(jù)說明GaussDB平均的單機內(nèi)核性能足夠強勁,具備線性擴展突破高TPC-C成績的潛力。
毫無疑問,以華為為代表的中國數(shù)據(jù)庫品牌越來越敢在各種行業(yè)評測機構(gòu)亮成績,讓行業(yè)用戶看到中國數(shù)據(jù)庫品牌與產(chǎn)品的實際參考價值,也成為用戶所欣喜看到的趨勢。
數(shù)據(jù)庫發(fā)展沒有捷徑,業(yè)務場景實踐是唯一出路
事實上,數(shù)據(jù)庫作為技術(shù)含量高、難度巨大的IT基礎(chǔ)產(chǎn)品,往往需要大量的人才、資金進行長期耐心投入。與此同時,數(shù)據(jù)庫又是一個競爭門檻特別高的領(lǐng)域。國外數(shù)據(jù)庫巨頭們已經(jīng)將競爭門檻構(gòu)筑的足夠高,中國的數(shù)據(jù)庫品牌往往需要為之付出更大的努力,才能達到同樣的高度。
尤其是在像金融、電信、制造、交通、能源等商用市場,國際數(shù)據(jù)庫已經(jīng)具備了足夠的產(chǎn)品能力、品牌能力和生態(tài)能力。某位數(shù)據(jù)庫專家就向筆者坦言:“打造一款通用型數(shù)據(jù)庫絕非易事,除了性能之外,易用性、可靠性和可恢復性是背后隱藏的能力,這絕非一朝一夕所能做到的。”因此,中國數(shù)據(jù)庫品牌的發(fā)展并沒有任何捷徑,需要牢牢中國各個行業(yè)加速數(shù)字化轉(zhuǎn)型的窗口期,從實際業(yè)務場景中的實踐中不斷摸索與成長,加速迭代和改進,走出自身的價值之路。
比如在對于數(shù)據(jù)庫產(chǎn)品為苛刻的金融行業(yè),據(jù)筆者所了解的情況,到今年為止,國內(nèi)大部分金融行業(yè)客戶依然以采用國際數(shù)據(jù)庫巨頭產(chǎn)品為主,不過出于未來長遠發(fā)展考慮,很多金融機構(gòu)都在嘗試在業(yè)務中使用中國的數(shù)據(jù)庫品牌。但是以銀行、保險等為代表的傳統(tǒng)金融機構(gòu),其業(yè)務復雜性遠不是互聯(lián)網(wǎng)金融公司單一業(yè)務所能比擬的,往往需要中國數(shù)據(jù)庫產(chǎn)品在多個方面具備足夠的實力。
以招商銀行為例,截止2018年底,光APP注冊用戶就達到1.4億、月活用戶達到8000萬以上,從總行到分行、再到支行幾乎每天都通過APP進行各色各樣的個性化推薦、搶購、秒殺等促銷活動,在其向金融科技的轉(zhuǎn)型過程中,海量、復雜的核心業(yè)務場景使得招商銀行仔細評估了開源數(shù)據(jù)庫和商用數(shù)據(jù)產(chǎn)品,對數(shù)據(jù)庫有著明確和清晰的需求:高性能、高擴展、高可用、對業(yè)務開發(fā)友好、容易管理運維的金融分布式數(shù)據(jù)庫產(chǎn)品。
為此,招商銀行與華為進行聯(lián)合創(chuàng)新,招商銀行方面提供先進的金融業(yè)務場景,根據(jù)多年數(shù)據(jù)庫使用和運維經(jīng)驗提出分布式數(shù)據(jù)的具體要求,以及深入?yún)⑴c到數(shù)據(jù)庫核心內(nèi)核和架構(gòu)的設(shè)計、編碼、測試和投產(chǎn)階段。經(jīng)過雙方聯(lián)合創(chuàng)新,華為GaussDB已經(jīng)擁有高性能的數(shù)據(jù)庫內(nèi)核、性能與容量的高可擴展能力、數(shù)據(jù)的兩地多中心高可用、故障快速切換、支持高性能分布式事務、易開發(fā)、易運維與管理等七大特性,并且在招商銀行實際業(yè)務場景中得到充分的驗證與落地。(相關(guān)推薦:)
例如,在數(shù)據(jù)庫的可擴展能力方面,招商銀行可以在實際業(yè)務中做到擴展比不低于0.8的準線性擴展,節(jié)點擴展采用全量+增量的方式,實現(xiàn)對業(yè)務無感知的擴容,可以支持8000個以上的數(shù)據(jù)庫并發(fā)連接,很好地應對了招商銀行秒殺、搶購場景下突增的數(shù)據(jù)庫訪問請求。又比如在數(shù)據(jù)庫的主備切換階段,GaussDB實現(xiàn)了關(guān)鍵故障恢復指標上的大幅領(lǐng)先,RTO<1s ,而其他商業(yè)數(shù)據(jù)庫產(chǎn)品通常需要30s以上,這讓招商銀行的AZ內(nèi)故障恢復速度提升30倍。