一、 鍵值儲存 它的資料是以鍵值的形式儲存的,雖然它的速度非常快,但基本上只能通過鍵的完全一致查詢獲取資料,根據資料的儲存方式可以分為臨時性、永久性和兩者兼具三種。 (1)臨時性(memcached) 所謂臨時性就是資料有可能丟失,memcached把所有資料都儲存
一、 鍵值儲存
它的資料是以鍵值的形式儲存的,雖然它的速度非常快,但基本上只能通過鍵的完全一致查詢獲取資料,根據資料的儲存方式可以分為臨時性、永久性和兩者兼具三種。
(1)臨時性(memcached)
所謂臨時性就是資料有可能丟失,,memcached把所有資料都儲存在記憶體中,這樣儲存和讀取的速度非常快,但是當memcached停止時,資料就不存在了。由於資料儲存在記憶體中,所以無法操作超出記憶體容量的資料,舊資料會丟失。
總結來說:
1、在記憶體中儲存資料
2、可以進行非常快速的儲存和讀取處理
3、資料有可能丟失
(2)永久性(roma、tokyo tyrant、flare)
所謂永久性就是資料不會丟失,這裡的鍵值儲存是把資料儲存在硬碟上,與臨時性比起來,由於必然要發生對硬碟的io操作,所以效能上還是有差距的,但資料不會丟失是它最大的優勢。
總結來說:
1、在硬碟上儲存資料
2、可以進行非常快速的儲存和讀取處理(但無法與memcached相比)
3、資料不會丟失
(3)兩者兼備(redis)
redis有些特殊,臨時性和永久性兼具。redis首先把資料儲存在記憶體中,在滿足特定條件(預設是 15分鐘一次以上,5分鐘內10個以上,1分鐘內10000個以上的鍵發生變更)的時候將資料寫入到硬碟中,這樣既確保了記憶體中資料的處理速度,又可以通過寫入硬碟來保證資料的永久性,這種型別的資料庫特別適合處理陣列型別的資料。
總結來說:
同時在記憶體和硬碟上儲存資料
1、可以進行非常快速的儲存和讀取處理
2、儲存在硬碟上的資料不會消失(可以恢復)
3、適合於處理陣列型別的資料
二、面向文件的資料庫(mongodb、couchdb)
(1)不定義表結構
即使不定義表結構,也可以像定義了表結構一樣使用,還省去了變更表結構的麻煩。
(2)可以使用複雜的查詢條件
跟鍵值儲存不同的是,面向文件的資料庫可以通過複雜的查詢條件來獲取資料,雖然不具備事務處理和join這些關係型資料庫所具有的處理能力,但初次以外的其他處理基本上都能實現。
三、 面向列的資料庫(cassandra、hbase、hypertabl)
由於近年來資料量出現爆發性增長,這種型別的nosql資料庫尤其引入注目。
普通的關係型資料庫都是以行為單位來儲存資料的,擅長以行為單位的讀入處理,比如特定條件資料的獲取。因此,關係型資料庫也被成為面向行的資料庫。相反,面向列的資料庫是以列為單位來儲存資料的,擅長以列為單位讀入資料。
mysql儲存過程 MySQL儲存過程
在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...
mysql資料儲存 mysql資料儲存
頁 從磁碟讀取或者寫入資料時,我們通常會指定乙個緩衝區大小,達到緩衝區域大小才會寫入一次資料,較少io操作次數。同樣的從磁碟讀取資料時候,就作業系統而言,讀取一條較小的資料時,並不是只會返回我們需要的資料,而是會將這個資料前後的部分資料一併讀取到記憶體中,以備之後使用。這個從磁碟讀取的最小量的資料被...
mysql 儲存過程 mysql 儲存過程
建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...