一、十億級(jí)別,應(yīng)該用什么數(shù)據(jù)庫和解決方案
可以考慮Elasticsearch,它是一款免費(fèi)的分布式開源搜索和分析引警,Elasticsearch集群能處理PB級(jí)別的數(shù)據(jù)存儲(chǔ)、查詢以及分析。被廣泛應(yīng)用于企業(yè)級(jí)的場(chǎng)景,如: 海量日志存儲(chǔ),運(yùn)維監(jiān)控,數(shù)據(jù)分析,信息檢索等領(lǐng)域。
如果只是簡(jiǎn)單場(chǎng)景查詢的話,建議直接使用滿N叉樹結(jié)構(gòu),N值可以設(shè)置的足夠大到內(nèi)存可以分配的程度。
對(duì)原始數(shù)據(jù)先直接構(gòu)造上面結(jié)構(gòu)存入硬盤,讀取一次按照N叉樹結(jié)構(gòu)讀取一層。
這種方式可以保證最大程度的查詢效率,但無法對(duì)數(shù)據(jù)進(jìn)行更新和刪除,如果說有需要更新和刪除操作,建議還是使用B樹結(jié)構(gòu),數(shù)據(jù)庫可直接使用商用和開源的成熟產(chǎn)品。
延伸閱讀:
二、什么是數(shù)據(jù)庫
數(shù)據(jù)庫就是英文的“database”翻譯來的,data + base,故名思義就是數(shù)據(jù)的根源,數(shù)據(jù)的基礎(chǔ)。那么為什么要有數(shù)據(jù)庫呢,數(shù)據(jù)庫首先是個(gè)計(jì)算機(jī)軟件,在所謂數(shù)據(jù)庫誕生之前,常用方法可能是程序員自己寫一個(gè)小程序來完成數(shù)據(jù)處理分析這樣的工作。
伴隨著計(jì)算機(jī)的普及,越來越多的場(chǎng)景開始使用計(jì)算機(jī),產(chǎn)生了越來越多的數(shù)據(jù),也催生了越來越多的數(shù)據(jù)分析需求。為了降低數(shù)據(jù)分析的門檻,讓更多人能夠更方便高效地管理分析數(shù)據(jù),工程師們就打造了一種專門的軟件來幫助人們對(duì)數(shù)據(jù)進(jìn)行合理的存儲(chǔ)以提高存取效率,提供易用的接口和豐富的分析算法以方便使用,集成有效的管理工具以提高數(shù)據(jù)安全性等等,這就是數(shù)據(jù)庫,也被稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS,Database management system)。
數(shù)據(jù)庫是一整套數(shù)據(jù)管理體系,包括數(shù)據(jù)存儲(chǔ)的模型、數(shù)據(jù)組織的架構(gòu)、數(shù)據(jù)分析的算法、數(shù)據(jù)管理的工具以及數(shù)據(jù)訪問的接口等等。