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