TimesTen的名字,就是Ten Times(10倍),意思就是
比傳統(tǒng)的數(shù)據(jù)庫要快一個數(shù)量級
TimesTen要快這么多?如果把傳統(tǒng)的數(shù)據(jù)庫中的數(shù)據(jù)全部先load到內存中是否能達到相同的效果?下面我們對它們做一個比較分析。
第一,傳統(tǒng)的數(shù)據(jù)庫和應用程序是兩個不同的應用系統(tǒng),它們之間的通訊是通過IPC連接來實現(xiàn)的。而TimesTen則是直接把數(shù)據(jù)庫的內存映射到應用程序的地址空間中
,簡單來說,這時候TimesTen訪問數(shù)據(jù)庫中的數(shù)據(jù),就象訪問應用程序自己的數(shù)組、字符串變量一樣
,只不過TimesTen有一套完善的機制來實現(xiàn)數(shù)據(jù)的一致性和完整性。這種直接嵌入到應用程序的運行地址空間機制比IPC要高效很多。
第二,傳統(tǒng)的數(shù)據(jù)庫都是Disk-based的,即預先假定數(shù)據(jù)主要是放在磁盤中的,所以它的所有優(yōu)化、查詢算法都是以磁盤存儲為主的。舉個簡單的例子,比如說要查找一行記錄,傳統(tǒng)的數(shù)據(jù)庫要先查找索引
,通過索引查找該記錄所在的頁面
,然后通過查找該頁是已經在內存中,還是要從磁盤的數(shù)據(jù)文件中讀取出來。而TimesTen是預先就把所有的數(shù)據(jù)Load到內存中,它知道所有的數(shù)據(jù)一定在內存里面,不會再通過其它的調用去決定數(shù)據(jù)在哪兒,這其中就少走了很多的彎路,
基本沒有磁盤的IO
,而且都在內存中,效率也就高了很多。所以即使傳統(tǒng)的數(shù)據(jù)庫把數(shù)據(jù)都預先Load的內存中,也是達不到TimesTen的效果的。因為傳統(tǒng)數(shù)據(jù)庫的
索引機制、優(yōu)化算法、復雜的數(shù)據(jù)結構、數(shù)據(jù)的獲取機制
等等因素限制了它的性能。
上一篇:u盤開機鎖如何加載到啟動項中?
下一篇:ipad代理服務器需要修復嗎?
責任編輯: