一、SQL Server 2014的集成內(nèi)存OLTP(Hekaton)有什么戰(zhàn)略意義
1、SQL Server本來(lái)就是in memory的,任何數(shù)據(jù)庫(kù)都會(huì)用大量?jī)?nèi)存去cache磁盤數(shù)據(jù),所以未來(lái)內(nèi)存越來(lái)越大并不是用in memory字面意思就能說(shuō)明的優(yōu)勢(shì)。
2、oltp除非降低可靠性,憑什么in memory能提高性能?都要落盤和集群才能言及可靠性,然而這一個(gè)是磁盤為主的問題,一個(gè)是網(wǎng)絡(luò)為主的問題,in memory到底在哪里產(chǎn)生了建樹?
3、據(jù)我所知sql server本來(lái)就支持mvcc的,只是默認(rèn)沒開snapshot級(jí)別的事務(wù)模式,snapshot我理解就是multi-version的意思,不知道對(duì)不對(duì)。
我憑空推測(cè)下,in memory表如果要做到實(shí)質(zhì)性的提升,可能主要就是優(yōu)化內(nèi)存里的數(shù)據(jù)結(jié)構(gòu)而不是經(jīng)典的cache模式,比如列存儲(chǔ),拋棄btree(為磁盤設(shè)計(jì)的)等。
然后是增加很多in memory適合做的東西,比如高并發(fā)的鎖操作。一臺(tái)數(shù)據(jù)庫(kù)就能做到隊(duì)列的功能,并能保證可靠性。
但是對(duì)于oltp,必須落盤的東西,除了改變落盤策略,通過降低可靠性提高性能,其他還真想不到能怎么提升。但是降低可靠性提升性能的落盤策略,同樣適用于普通表。
延伸閱讀:
二、什么是數(shù)據(jù)庫(kù)
有組織且相互關(guān)聯(lián)的數(shù)據(jù)的集合稱為數(shù)據(jù)庫(kù)。database 是一個(gè)存儲(chǔ)數(shù)據(jù)的應(yīng)用程序。它有各種應(yīng)用程序,包括 MySQL、Microsoft SQL、Oracle 等。
每個(gè)數(shù)據(jù)庫(kù)都不同,因?yàn)槊總€(gè)公司/組織都有其結(jié)構(gòu)、數(shù)據(jù)類型和約束。數(shù)據(jù)庫(kù) 會(huì)定期更新,以獲取有關(guān)公司的最新數(shù)據(jù)。
數(shù)據(jù)庫(kù)可以手動(dòng)和數(shù)字方式維護(hù)。在這個(gè)數(shù)據(jù)無(wú)處不在的時(shí)代,數(shù)字?jǐn)?shù)據(jù)庫(kù)是優(yōu)選和使用。數(shù)據(jù)庫(kù)的大小取決于組織的數(shù)據(jù)和需求。
數(shù)據(jù)庫(kù)有很多種類型,從最簡(jiǎn)單的存儲(chǔ)有各種數(shù)據(jù)的表格到能夠進(jìn)行海量數(shù)據(jù)存儲(chǔ)的大型數(shù)據(jù)庫(kù)系統(tǒng)都在各個(gè)方面得到了廣泛的應(yīng)用。
數(shù)據(jù)庫(kù)是“按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)”。在經(jīng)濟(jì)管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進(jìn)這樣“倉(cāng)庫(kù)”,并根據(jù)管理的需要進(jìn)行相應(yīng)的處理。
例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號(hào)、姓名、年齡、性別、籍貫、工資、簡(jiǎn)歷等)存放在表中,這張表就可以看成是一個(gè)數(shù)據(jù)庫(kù)。
有了這個(gè)”數(shù)據(jù)倉(cāng)庫(kù)”就可以根據(jù)需要隨時(shí)查詢某職工的基本情況,也可以查詢工資在某個(gè)范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計(jì)算機(jī)上自動(dòng)進(jìn)行,那的人事管理就可以達(dá)到極高的水平。
此外,在財(cái)務(wù)管理、倉(cāng)庫(kù)管理、生產(chǎn)管理中也需要建立眾多的這種“數(shù)據(jù)庫(kù)”,使其可以利用計(jì)算機(jī)實(shí)現(xiàn)財(cái)務(wù)、倉(cāng)庫(kù)、生產(chǎn)的自動(dòng)化管理。