最節約空間的數據存儲方式
Ⅰ 大數據時代:如何節省存儲成本
現今的科技發展日新月異。尤其是存儲方面,表現的極其突出。從技術、用戶和應用方面來看,其發展速度超越了其他IT領域。同時也帶來了相應的問題。數據中心和企業的管理者們都面臨著如何選擇存儲陣列的困惑。通常的解決方案早已被大肆宣傳開來,例如像快閃記憶體存儲或諸如WAN優化等這些被炒作已久的技術似乎已在人們腦海中變得根深蒂固。下面的七個存儲解決方案的建議不是基於任何技術的「新生事物」,而只是更具實用性並讓企業的花費更具價值。這七個建議應使管理者考慮從新制定他們在2012年的存儲預算。根據現有的存儲基礎設施、資源、數據的特點和所需的訪問重新審視市場上存儲的關鍵點,當今正是非常恰當的時機。而存儲的關鍵就在於在提高存儲性能的同時減少或至少維持經營成本和資本的支出。1.精簡配置在3Par被惠普收購之前。自動精簡配置技術在配置存儲容量方面起著極其重要的作用。在SAN的初期,企業實際花費更大的力氣來保證預期的數據增長。精簡資源調配可幫助企業有能力提供他們所需要的,同時保證增加需要的容量而無需創建新的LUNs(logical unit numbers)。2.面向對象存儲和REST(Representational State Transfer)最初,這項技術似乎對雲計算有更大的影響。現在越來越多的企業認為數據更適合存儲在公共雲之上。同時HTTP將有可能成為一種傳輸的手段,利用REST方法來移動和存儲數據,並提供豐富的元數據和相關的數據說明。當你看到這種跨廣域網案例在數據中心紮根時請不要驚訝。3.廣域網優化企業可通過廣域網優化產品來提升網路的效率,如廣域數據服務商Riverbed。這樣做可有效減少通過廣域網發送、刪除重復數據和壓縮數據的通信量。並可顯著節省存儲空間、降低延遲、降低企業廣域網帶寬相關費用等好處。通過廣域網的優化企業可在世界各地查看和創建數據,就像在區域網內部一樣。4.分層存儲隨著企業需求的成本平衡以及性能需求,將需要存儲的數據放在最好的媒介上以匹配數據的價值和性能是非常必要的。對於一些不需要頻繁訪問的數據不一定存儲在SSD或更高性能的磁碟驅動器上。現今供應商提供的存儲產品具備根據訪問模式自動布局數據的功能。企業應該了解數據存放在介質上形式以及數據模型的增長,以便在作出購買決定之前更好的了解擴展容量和性能的成本。5.向外擴展的NAS傳統規模的NAS模型在中小型企業中所佔的市場份額越來越小。它正被向外擴展的方式所替代。並開始逐步添加企業在集群方式下提高容量和性能的能力。同時構建一個全局命名空間,並在其中工作。這樣可有效簡化存儲配置,還可大幅降低總成本。6.性能層的設備設備較少的關注基於NAS管理容量的能力。設備更多的關注存儲的數據如何以最高的效率移動數據。NAS的優化是使IOPS返回到NAS之中,設備可以不承擔所有繁重計算,這些任務全都由NAS負責。其帶來的結果是提高性能並減少資本和運營開支。7.FCoEFCoE(乙太網光纖通道)可幫助企業在乙太網基礎設備中擴展光纖通道。這可有效節省基礎設施的開銷。包括電纜和電源管理方面。而現今大多數人還不太了解FCoE。而且也沒有iSCSI和FCoE競爭的消息。但是這並不意味著FCoE不會成為未來的重要技術。基於文件的存儲的增長率已超過了數據塊的存儲。所以光纖通道和FCoE將會存在下去。做出新的選擇並不會為你的當前的基礎結構或數據中心帶來風險。
Ⅱ 海量空間數據存儲
(一)空間數據存儲技術
隨著地理信息系統的發展,空間資料庫技術也得到了很大的發展,並出現了很多新的空間資料庫技術(黃釗等,2003),其中應用最廣的就是用關系資料庫管理系統(RDBMS)來管理空間數據。
用關系資料庫管理系統來管理空間數據,主要解決存儲在關系資料庫中的空間數據與應用程序之間的數據介面問題,即空間資料庫引擎(SpatialDatabase Engine)(熊麗華等,2004)。更確切地說,空間資料庫技術是解決空間數據對象中幾何屬性在關系資料庫中的存取問題,其主要任務是:
(1)用關系資料庫存儲管理空間數據;
(2)從資料庫中讀取空間數據,並轉換為GIS應用程序能夠接收和使用的格式;
(3)將GIS應用程序中的空間數據導入資料庫,交給關系資料庫管理。
空間資料庫中數據存儲主要有三種模式:拓撲關系數據存儲模式、Oracle Spatial模式和ArcSDE模式。拓撲關系數據存儲模式將空間數據存在文件中,而將屬性數據存在資料庫系統中,二者以一個關鍵字相連。這樣分離存儲的方式由於存在數據的管理和維護困難、數據訪問速度慢、多用戶數據並發共享沖突等問題而不適用於大型空間資料庫的建設。而OracleSpatial實際上只是在原來的資料庫模型上進行了空間數據模型的擴展,實現的是「點、線、面」等簡單要素的存儲和檢索,所以它並不能存儲數據之間復雜的拓撲關系,也不能建立一個空間幾何網路。ArcSDE解決了這些問題,並利用空間索引機制來提高查詢速度,利用長事務和版本機制來實現多用戶同時操縱同一類型數據,利用特殊的表結構來實現空間數據和屬性數據的無縫集成等(熊麗華等,2004)。
ArcSDE是ESRI公司開發的一個中間件產品,所謂中間件是一個軟體,它允許應用元素通過網路連接進行互操作,屏蔽其下的通訊協議、系統結構、操作系統、資料庫和其他應用服務。中間件位於客戶機/伺服器的操作系統之上,管理計算資源和網路通訊,並營造出一個相對穩定的高層應用環境,使開發人員可以集中精力於系統的上層開發,而不用過多考慮系統分布式環境下的移植性和通訊能力。因此,中間件能無縫地連入應用開發環境中,應用程序可以很容易地定位和共享中間件提供的應用邏輯和數據,易於系統集成。在分布式的網路環境下,客戶端的應用程序如果要訪問網路上某個伺服器的信息,而伺服器可能運行在不同於客戶端的操作系統和資料庫系統中。此時,客戶機的應用程序中負責尋找數據的部分只需要訪問一個數據訪問中間件,由該中間件完成網路中數據或服務的查找,然後將查找的信息返回給客戶端(萬定生等,2003)。因此,本系統實現空間資料庫存儲的基本思想就是利用ArcSDE實現各類空間數據的存儲。
目前,空間數據存儲技術已比較成熟,出現了許多類似ArcSDE功能的中間件產品,這些軟體基本上都能實現空間數據的資料庫存儲與管理,但對於海量空間數據的存儲,各種軟體性能差別較大。隨著數據量的增長,計算機在分析處理上會產生很多問題,比如數據不可能一次完全被讀入計算機的內存中進行處理。單純依賴於硬體技術,並不能滿足持續增長的數據的處理要求。因此需要在軟體上找到處理海量數據的策略,並最終通過軟硬體的結合完成對海量數據的處理。在海量數據存儲問題上,許多專家從不同側面進行過研究,Lindstrom在地形簡化中使用了外存模型(Out-of-core)技術;鍾正採用了基於數據分塊、動態調用的策略;汪國平等人在研究使用高速網路進行三維海量地形數據的實時交互瀏覽中,採用了分塊、多解析度模板建立模型等方法。這些技術、方法已經在各自系統上進行了研究和實現。本系統採用的ArcSDE軟體基本上也是採用分塊模型的方法,具體存儲和操作不需要用戶過多了解,已經由ArcSDE軟體實現。因此,對海量數據的存儲管理,更需要從數據的組織方式等方面進行設計。塔里木河流域生態環境動態監測系統採集了大量的遙感影像、正射影像等柵格結構的數據,這些數據具有很大的數據量,為適應流域空間基礎設施的管理需要,採取一種新的方式來管理、分發這些海量數據以適應各部門的快速瀏覽和管理需要。
(二)影像金字塔結構
影像資料庫的組織是影像資料庫效率的關鍵,為了獲得高效率的存取速度,在數據的組織上使用了金字塔數據結構和網格分塊數據結構。該技術主導思想如下:
(1)將資料庫中使用到的紋理處理成為大小一致的紋理塊;
(2)為每塊紋理生成5個細節等級的紋理,分別為0、1、2、3、4,其中1級紋理通過0級紋理1/4壓縮得到,2級紋理通過1級紋理1/4壓縮得到,…,以此類推;
(3)在顯示每個塊數據之前,根據顯示比例的大小,並以此決定該使用那一級的紋理;
(4)在內存中建立紋理緩沖池,使用LRU演算法進行紋理塊的調度,確保使用頻率高的紋理調度次數盡可能少。
(三)影像數據壓縮
影像數據壓縮有無損壓縮和有損壓縮兩個方法,具體採取哪種壓縮方法需根據具體情況確定。對於像元值很重要的數據,如分類數據、分析數據等採用無損壓縮(即LZ77演算法),否則採用有損壓縮(即JPEG演算法)。通過對影像數據的壓縮,一方面可以節約存儲空間,另一方面可以加快影像的讀取和顯示速度。影像數據的壓縮一般與構建金字塔同時進行,在構建影像金字塔過程中自動完成數據的壓縮。
Ⅲ 如何節省存儲空間
1、首先,打開【設置】,進入設置界面,找到最上方的【Apple ID、icloud】選項,如圖所示,然後在下一個界面選擇【iCloud】。
Ⅳ 數據的儲存結構主要有哪兩種有什麼主要區別
數據的儲存結構主要有:順序存儲結構和鏈式存儲結構。
主要區別
一、存儲單元的連續性不同
鏈式存儲結在構計算機中用一組任意的存儲單元存儲線性表的數據元素(這組存儲單元可以是連續的,也可以是不連續的)。
順序存儲結構在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素。
二、優缺點不同
空間上
順序比鏈式節約空間。是因為鏈式結構每一個節點都有一個指針存儲域。
存儲操作上:
順序支持隨機存取,方便操作
插入和刪除上:
鏈式的要比順序的方便(因為插入的話順序表也很方便,問題是順序表的插入要執行更大的空間復雜度,包括一個從表頭索引以及索引後的元素後移,而鏈表是索引後,插入就完成了)
三、適用方向不同
鏈式存儲適用於在較頻繁地插入、刪除、更新元素時,而順序存儲結構適用於頻繁查詢時使用。
Ⅳ 數據的存儲方法有哪些
什麼是分布式存儲
分布式存儲是一種數據存儲技術,它通過網路使用企業中每台機器上的磁碟空間,這些分散的存儲資源構成了虛擬存儲設備,數據分布存儲在企業的各個角落。
分布式存儲系統,可在多個獨立設備上分發數據。傳統的網路存儲系統使用集中存儲伺服器來存儲所有數據。存儲伺服器成為系統性能的瓶頸,也是可靠性和安全性的焦點,無法滿足大規模存儲應用的需求。分布式網路存儲系統採用可擴展的系統結構,使用多個存儲伺服器共享存儲負載,利用位置伺服器定位存儲信息,不僅提高了系統的可靠性,可用性和訪問效率,而且易於擴展。
分布式存儲的優勢
可擴展:分布式存儲系統可以擴展到數百甚至數千個這樣的集群大小,並且系統的整體性能可以線性增長。
低成本:分布式存儲系統的自動容錯和自動負載平衡允許在低成本伺服器上構建分布式存儲系統。此外,線性可擴展性還能夠增加和降低伺服器的成本,並實現分布式存儲系統的自動操作和維護。
高性能:無論是針對單個伺服器還是針對分布式存儲群集,分布式存儲系統都需要高性能。
易用性:分布式存儲系統需要提供方便易用的界面。此外,他們還需要擁有完整的監控和操作工具,並且可以輕松地與其他系統集成。
杉岩分布式統一存儲USP
利用分布式技術將標准x86伺服器的HDD、SSD等存儲介質抽象成資源池,對上層應用提供標準的塊、文件、對象訪問介面,
同時提供清晰直觀的統一管理界面,減少部署和運維成本,滿足高性能、高可靠、高可擴展性的大規模存儲資源池的建設需求。
Ⅵ 數據存儲形式有哪幾種
【塊存儲】
典型設備:磁碟陣列,硬碟
塊存儲主要是將裸磁碟空間整個映射給主機使用的,就是說例如磁碟陣列裡面有5塊硬碟(為方便說明,假設每個硬碟1G),然後可以通過劃邏輯盤、做Raid、或者LVM(邏輯卷)等種種方式邏輯劃分出N個邏輯的硬碟。(假設劃分完的邏輯盤也是5個,每個也是1G,但是這5個1G的邏輯盤已經於原來的5個物理硬碟意義完全不同了。例如第一個邏輯硬碟A裡面,可能第一個200M是來自物理硬碟1,第二個200M是來自物理硬碟2,所以邏輯硬碟A是由多個物理硬碟邏輯虛構出來的硬碟。)
接著塊存儲會採用映射的方式將這幾個邏輯盤映射給主機,主機上面的操作系統會識別到有5塊硬碟,但是操作系統是區分不出到底是邏輯還是物理的,它一概就認為只是5塊裸的物理硬碟而已,跟直接拿一塊物理硬碟掛載到操作系統沒有區別的,至少操作系統感知上沒有區別。
此種方式下,操作系統還需要對掛載的裸硬碟進行分區、格式化後,才能使用,與平常主機內置硬碟的方式完全無異。
優點:
1、 這種方式的好處當然是因為通過了Raid與LVM等手段,對數據提供了保護。
2、 另外也可以將多塊廉價的硬碟組合起來,成為一個大容量的邏輯盤對外提供服務,提高了容量。
3、 寫入數據的時候,由於是多塊磁碟組合出來的邏輯盤,所以幾塊磁碟可以並行寫入的,提升了讀寫效率。
4、 很多時候塊存儲採用SAN架構組網,傳輸速率以及封裝協議的原因,使得傳輸速度與讀寫速率得到提升。
缺點:
1、採用SAN架構組網時,需要額外為主機購買光纖通道卡,還要買光纖交換機,造價成本高。
2、主機之間的數據無法共享,在伺服器不做集群的情況下,塊存儲裸盤映射給主機,再格式化使用後,對於主機來說相當於本地盤,那麼主機A的本地盤根本不能給主機B去使用,無法共享數據。
3、不利於不同操作系統主機間的數據共享:另外一個原因是因為操作系統使用不同的文件系統,格式化完之後,不同文件系統間的數據是共享不了的。例如一台裝了WIN7/XP,文件系統是FAT32/NTFS,而Linux是EXT4,EXT4是無法識別NTFS的文件系統的。就像一隻NTFS格式的U盤,插進Linux的筆記本,根本無法識別出來。所以不利於文件共享。
【文件存儲】
典型設備:FTP、NFS伺服器
為了克服上述文件無法共享的問題,所以有了文件存儲。
文件存儲也有軟硬一體化的設備,但是其實普通拿一台伺服器/筆記本,只要裝上合適的操作系統與軟體,就可以架設FTP與NFS服務了,架上該類服務之後的伺服器,就是文件存儲的一種了。
主機A可以直接對文件存儲進行文件的上傳下載,與塊存儲不同,主機A是不需要再對文件存儲進行格式化的,因為文件管理功能已經由文件存儲自己搞定了。
優點:
1、造價交低:隨便一台機器就可以了,另外普通乙太網就可以,根本不需要專用的SAN網路,所以造價低。
2、方便文件共享:例如主機A(WIN7,NTFS文件系統),主機B(Linux,EXT4文件系統),想互拷一部電影,本來不行。加了個主機C(NFS伺服器),然後可以先A拷到C,再C拷到B就OK了。(例子比較膚淺,請見諒……)
缺點:
讀寫速率低,傳輸速率慢:乙太網,上傳下載速度較慢,另外所有讀寫都要1台伺服器裡面的硬碟來承擔,相比起磁碟陣列動不動就幾十上百塊硬碟同時讀寫,速率慢了許多。
【對象存儲】
典型設備:內置大容量硬碟的分布式伺服器
對象存儲最常用的方案,就是多台伺服器內置大容量硬碟,再裝上對象存儲軟體,然後再額外搞幾台服務作為管理節點,安裝上對象存儲管理軟體。管理節點可以管理其他伺服器對外提供讀寫訪問功能。
之所以出現了對象存儲這種東西,是為了克服塊存儲與文件存儲各自的缺點,發揚它倆各自的優點。簡單來說塊存儲讀寫快,不利於共享,文件存儲讀寫慢,利於共享。能否弄一個讀寫快,利 於共享的出來呢。於是就有了對象存儲。
首先,一個文件包含了了屬性(術語叫metadata,元數據,例如該文件的大小、修改時間、存儲路徑等)以及內容(以下簡稱數據)。
以往像FAT32這種文件系統,是直接將一份文件的數據與metadata一起存儲的,存儲過程先將文件按照文件系統的最小塊大小來打散(如4M的文件,假設文件系統要求一個塊4K,那麼就將文件打散成為1000個小塊),再寫進硬碟裡面,過程中沒有區分數據/metadata的。而每個塊最後會告知你下一個要讀取的塊的地址,然後一直這樣順序地按圖索驥,最後完成整份文件的所有塊的讀取。
這種情況下讀寫速率很慢,因為就算你有100個機械手臂在讀寫,但是由於你只有讀取到第一個塊,才能知道下一個塊在哪裡,其實相當於只能有1個機械手臂在實際工作。
而對象存儲則將元數據獨立了出來,控制節點叫元數據伺服器(伺服器+對象存儲管理軟體),裡面主要負責存儲對象的屬性(主要是對象的數據被打散存放到了那幾台分布式伺服器中的信息),而其他負責存儲數據的分布式伺服器叫做OSD,主要負責存儲文件的數據部分。當用戶訪問對象,會先訪問元數據伺服器,元數據伺服器只負責反饋對象存儲在哪些OSD,假設反饋文件A存儲在B、C、D三台OSD,那麼用戶就會再次直接訪問3台OSD伺服器去讀取數據。
這時候由於是3台OSD同時對外傳輸數據,所以傳輸的速度就加快了。當OSD伺服器數量越多,這種讀寫速度的提升就越大,通過此種方式,實現了讀寫快的目的。
另一方面,對象存儲軟體是有專門的文件系統的,所以OSD對外又相當於文件伺服器,那麼就不存在文件共享方面的困難了,也解決了文件共享方面的問題。
所以對象存儲的出現,很好地結合了塊存儲與文件存儲的優點。
最後為什麼對象存儲兼具塊存儲與文件存儲的好處,還要使用塊存儲或文件存儲呢?
1、有一類應用是需要存儲直接裸盤映射的,例如資料庫。因為資料庫需要存儲裸盤映射給自己後,再根據自己的資料庫文件系統來對裸盤進行格式化的,所以是不能夠採用其他已經被格式化為某種文件系統的存儲的。此類應用更適合使用塊存儲。
2、對象存儲的成本比起普通的文件存儲還是較高,需要購買專門的對象存儲軟體以及大容量硬碟。如果對數據量要求不是海量,只是為了做文件共享的時候,直接用文件存儲的形式好了,性價比高。
Ⅶ 用雙硬碟組RAID,哪種方式最節約空間數據最安全
您好:
用雙硬碟的話很難做到安全和節約空間都兼顧,兩塊盤只能做RAID0或1
RAID0雖然讀寫速度快,但是一塊盤壞了就全毀,
RAID1對數據有備份,但是兩塊盤只有一塊盤的容量。
如果條件允許,建議您加3塊盤做RAID5,由兩塊盤的容量,但是壞了一塊盤數據還是可以恢復的。
如果沒辦法用3塊盤,想組RAID0的話,建議您把數據定期做備份,
如果一塊硬碟容量夠用的話還是RAID1安全性高。
希望我的回答對您有幫助~
Ⅷ 什麼是最佳的存儲方案
企業管理者們在編制年預算的過程中都在考慮什麼是最佳存儲方案?下面說一下我認為的最佳存儲建議不是基於任何的「新技術」,而是充分考慮了其實用性和價值,提供借鑒和參考。最佳存儲解決方案1:自動精簡配置(Thin Provisioning)技術自3Par公司被惠普收購之前,自動精簡配置技術在配置存儲容量方面一直發揮著極其重要的作用。我記得在存儲區域網路(SAN)的初期,就有這種假 設:隨著數據增長,有的企業的實際使用的存儲能力要超過預期的存儲能力配置。利用自動精簡配置,可以提供給企業所需要的,同時增加容量需求,而不用擔心超 出的新的LUN(邏輯單元號)。我從3Par內部了解到,該公司的技術來源於公司內部的技術專家為了響應挑戰和區分,這在當時並未意識到其將成就如此強大 的3Par.最佳存儲解決方案2:面向對象的存儲和REST(Representational State Transfer表述性狀態轉移)最初,從雲計算的角度來說,這一技術將帶來巨大的影響力。越來越多的企業習慣於將他們的數據存儲在公共雲服務。HTTP協議將有可能作為一種傳輸手 段,利用REST作為數據移動和存儲數據,同時提供豐富的元數據。最初,我看到的主要用例是通過廣域,但在長期運行狀況下看到其掌握可數據中心也並不感到 驚訝了。最佳存儲解決方案3:廣域網優化可以通過廣域網優化產品,如Riverbed技術獲得效率,這比較是極端的方法。通過刪除重復數據和壓縮其餘的流量,減少跨廣域網發送量,可以顯著 節省存儲空間,減少延遲和降低廣域網帶寬的相關費用。隨著企業可以自己查看和創建世界各地的數據,廣域網優化已然成為了使用戶能保持區域網類型訪問,同時 控制存儲,網路和存儲費用的關鍵。最佳存儲解決方案4:分級存儲隨著企業尋求成本和性能的平衡,通過最好的介質存儲數據的想法,以匹配數據的價值和性能預期變得越發有意義。不經常訪問的數據,不一定要存儲在 SSD或更高性能的磁碟驅動器上。廠商推出的存儲產品,功能基於訪問模式的自動數據布局。Flash可以構成一個存儲層,通常標示為0層,或作為緩存。這 有兩個好處。企業應該了解數據是如何放在介質上的以及模型數據的增長,以便決定購買之前更好地了解擴展容量和性能的成本。最佳存儲解決方案5:向外擴展的NAS(網路附加存儲)我們知道,傳統的NAS會變成一個中小型NAS市場。它將被向外擴展的NAS取代,向外擴展的NAS可以讓企業逐步添加容量和性能,構建一個全局命名空間。存儲配置可以大大簡化,並找到一個單一的存儲管理員管理數據的情況並不少見。可以大大降低總成本。最佳存儲解決方案6:表現層設備設備管理較少關注基於NAS的容量管理。這些存儲數據更關心以最高的效率移動數據。即,一個設備不僅緩存數據,還要加速其其安置。NAS的優化,使IOPS回到NAS,所有繁重的計算交給NAS.其結果是提高了性能並顯著減少資本和運營開支。最佳存儲解決方案7:FCoE(乙太網光纖通道)FCoE可以幫助企業通過在乙太網基礎設施擴展光纖通道。節省花費在基礎設施上的資金,包括電纜和電源管理,這真是一筆不小的開支。具有諷刺意味 的?是,我們不對於FCoE相關的東西了解的太少。我們也沒有聽到或讀到過有關iSCSI和光纖通道之間的競爭。但是,這並不意味著它不重要。乙太網獲 勝。許多企業公開承認有充足的數據塊和文件流量並承認正在尋找的產品來處理它們。雖然基於文件的存儲的增長速度超過塊級存儲,不要指望對於光纖通道或FCoE會很快消失。以上就是簡單介紹的七大最佳存儲解決方案,希望通過本文的介紹能對大家有些許的幫助。
Ⅸ 鏈式存儲結構比順序存儲結構節省存儲空間嗎
不是,因為鏈式存除了數據域,還需要指針域。
Ⅹ 如何節省資料庫磁碟儲存空間
這個是經典問題了
是採用int型(自增量或手動增量),還是GUID還是聯合主鍵(combo)
考慮這些問題無非從高效性和易用性上進行考慮。下面列出四種主鍵生成方式優缺點的比較:
自動增長欄位
優點1. 使用簡單
缺點1. 不同資料庫獲取當前值方式不同;
2. 難以應用在多個資料庫間進行數據遷移的情況。
3.不能集群化
手動增長型欄位
優點1.可以獲得最新鍵值
2. 可以確保數據合並過程中不會出現鍵值沖突
缺點1.通常情況下需要建立一張單獨的表存儲當前主鍵鍵值;
2.增加一次資料庫訪問來獲取當前主鍵鍵值;
3. 考慮並發沖突等,增加系統的復雜程度。
4. 不能集群化
使用GUID
優點 1. 直接生成GUID,獲得最新鍵值以填充主鍵,使用方便;
2.可以確保數據合並過程中不會出現鍵值沖突;
3. 避免了前兩種方式獲取當前鍵值所增加的開銷。
缺點1.佔用較多存儲空間;
2.索引耗時;
3. 在多表鏈接查詢時效率不如int型
使用「COMB」類型
優點1. 保留GUID的已有優點;
2. 利用時間信息與GUID組合起來,增加有序性以提高索引效率。
缺點1.需要設計COMB的生成演算法;
2. 和GUID一樣佔用較多存儲空間;
3. 在多表鏈接查詢時效率不如int型,但優於GUID。
從上表的對比中可以看出,問題的焦點還是在是採用高效的,但可控性、可移植性差的整形,還是採用能使用GUID這樣可控性和移植性高,但是效率低,存儲大的字元型主鍵,真有點魚和熊掌不能兼得的味道。(COMB需要設計生成演算法,增加程序的復雜度,如果演算法不當,會產生意想不到的結果,GUID也可以通過優化索引的方式提升性能,暫不使用COMB)
從資料庫的角度來看,整形雖然查詢的效率最高,但是數據的合並、移植存在著很大的問題,同時高並發的情況下,各種整形的生成方式都面臨這問題,而且不利於集群化處理。而採用GUID生成方式的字元型,能很好解決集成和並發性的問題,但佔用空間大,查詢效率低可能成為系統運行後將出現的問題。
從程序開發的角度上看,整形生成方式的生成主鍵非常方便,但是主鍵的獲取,需要整個事務結束,才能從資料庫中取到,同時在多關聯表保存的時候,需要先保存主表,將產生的主鍵傳給字表,從而也可以造成性能的缺失,並且無法直接獲取主鍵,會增加程序開發處理的復雜性。而字元型的主鍵,需要程序人員自定義主鍵生成規則,需要認為的干預主鍵的生成,但是主鍵可以在插入資料庫之前就能拿到,方便程序的處理。
從系統數據的角度來看,業務數據可能存在大量的並發,採用GUID的方式是非常方便的,在數據級別很大的情況下,可以方便的進行集群化處理。檔案型數據並發量小,但是被引用的多,數據合並和集成的情況也很多,完全使用整形是不合適的,完全採用GUID,又會引起性能的缺失,需要更加折中的方案,既保證使用可控性較強的能唯一標識的字元串,同時又要盡量降低字元串佔得位元組數。而對於系統輔助數據,根據實際情況靈活使用,不做硬性統一,在數據量較小的情況下,盡量採用整形。