<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-128  評論-55  文章-5  trackbacks-0

    UUID

    通用惟一標識符(UUID)是128位比特的數字,用來惟一地標識因特網上的某些對象或者實體。

    A Universally Unique Identifier is an identifier standard used in software construction, standardized by the Open Software Foundation (OSF) as part of the Distributed Computing Environment (DCE). The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination. Thus, anyone can create a UUID and use it to identify something with reasonable confidence that the identifier will never be unintentionally used by anyone for anything else. Information labelled with UUIDs can therefore be later combined into a single database without need to resolve name conflicts. The most widespread use of this standard is in Microsoft's Globally Unique Identifiers (GUIDs) which implement this standard.

    一個UUID 是一個標識符標準用于軟件架構,是由開放軟件基金會(OSF)作為分布式計算環境(DCE)的一部分而制定的標準。UUIDs的目的就是使分布式系統可以不需要重要的中央調合系統而能唯一地標識信息。這樣,任何人能創造一個UUID 和使用它來標識一些東西,而且,你有足夠的信心來確定這個標識是永遠不會被任何人無意地使用在任何東西上。因此,信息加上了UUID標簽就能合并到單個數據庫中而不用去解決命名沖突的問題。這個標準的廣泛應用在微軟的全球唯一標識符(GUIDs)上,GUID實現了這個標準。

    A UUID is essentially a 16-byte number and in its canonical form a UUID may look like this:

    :550E8400-E29B-11D4-A716-446655440000

    And has this structure in the C programming language:

    typedef struct {
    unsigned32 time_low;
    unsigned16 time_mid;
    unsigned16 time_hi_and_version;
    unsigned8 clock_seq_hi_and_reserved;
    unsigned8 clock_seq_low;
    byte node6;
    } uuid_t;

    The J2SE 5.0 release of Java provides a class that will produce 128-bit UUIDs. The API documentation for the class refers to ISO/IEC 11578:1996.

    關于UUID的定義,詳細內容可參考http://www.ietf.org/rfc/rfc4122.txt,文檔里面還有C語言對UUID標準的各種實現。

    GUID

    A Globally Unique Identifier or GUID is a pseudo-random number used in software applications. While each generated GUID is not guaranteed to be unique, the total number of unique keys (2128 or 3.4028×1038) is so large that the possibility of the same number being generated twice is very small.

    一個全球唯一標識符 或 GUID 是一個假隨機數用于軟件中。雖然每個產生的GUID是不保證唯一的,但不同的標識符總數是(2128 也就是3.4028×1038)如此之大,以至于相同的數字被產生兩次的機率是很相當小的。

    The GUID is an implementation by Microsoft of a standard called Universally Unique Identifier (UUID), specified by the Open Software Foundation (OSF).

    GUID 是微軟對UUID這個標準的實現。UUID是由開放軟件基金會(OSF)定義的。

    UUID還有其它各種實現,不止GUID一種,其它的在此不詳細說明。

     

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/nidehong/archive/2006/11/22/1406125.aspx


    ---------------------

    http://blog.csdn.net/happyflystone/archive/2007/11/27/1903854.aspx

    UUID是是128位整數(16字節)的全局唯一標識符(Universally Unique Identifier),指在一臺機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平臺會提供生成UUID的API。UUID按照開放軟件基金會(OSF)制定的標準計算,用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字。由以下幾部分的組合:當前日期和時間(UUID的第一個部分與時間有關,如果你在生成一個UUID之后,過幾秒又生成一個UUID,則第一個部分不同,其余相同),時鐘序列,全局唯一的IEEE機器識別號(如果有網卡,從網卡獲得,沒有網卡以其他方式獲得),UUID的唯一缺陷在于生成的結果串會比較長。關于UUID這個標準使用最普遍的是微軟的GUID(Globals Unique Identifiers)。

    UUID,其格式為:xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每個 x 是 0-9 或 a-f 范圍內的一個十六進制的數字。而標準的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx (8-4-4-4-12)

           在建立數據庫的時候,需要為每張表指定一個主鍵,所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行數據更新、刪除的時候不會出現張冠李戴的錯誤。數據庫的主鍵生成有多種方式,每種方式都有其優點和缺點,應該根據不同的需求在主鍵的時間和空間效率上做平衡折中,從而選擇不同的主鍵生成策略。歸納起來,對主鍵的選擇主要有以下四種方式:

    1.     自動增長字段

             自動增長型字段允許我們在向數據庫添加數據時,不考慮主鍵的取值,記錄插入后,數據庫系統會自動為其分配一個值,確保絕對不會出現重復。

    2.     手動增長字段

             手動增長型的字段,也就是說主鍵的值需要自己維護,通常情況下需要建立一張單獨的表存儲當前主鍵鍵值。

    3.     GUID類型

             GUID是Globally Unique IDentifier的縮寫,是一個128位的隨機數,并保證不產生重復。

    4.     COMB類型

             COMB(combine)型可以理解為一種改進的GUID,它通過組合GUID和系統時間,以使其在索引和檢索事有更優的性能。

     

    COMB數據類型的基本設計思路是這樣的:既然GUID數據因毫無規律可言造成索引效率低下,影響了系統的性能,那么能不能通過組合的方式,保留GUID的10個字節,用另6個字節表示GUID生成的時間(DateTime),這樣我們將時間信息與GUID組合起來,在保留GUID的唯一性的同時增加了有序性,以此來提高索引效率。


    下面轉自:溫少,首發于博客園

    替代方案之一,就是使用關系數據庫的自增長字段,自增長字段的一個問題是,無法預先創建一個ID,只能夠在保存的時候才能生成ID,這對于批量關聯插入數據來說,不滿足需求。

    替代方案之二,就是使用一個記錄ID的表,每次加一,在事務中使用Select FOR UPDATE來讀取然后UPDATE SET FVALUE = FVALUE + 1,或者使用我之前文章中所提到的CAS算法。 這樣做,會導致性能低下,每生成一個ID的成本都很高。

    替代方案之三,就是把ID分成兩部分,Seed和IncrementID。Seed采用上面的方案二或者其他辦法生成,IncrementID使用一個AtomicInteger來每次遞增生成。SEED轉化為九進制數字,這樣SEED就不會包含9,于是使用9作為分隔符,把SEED和IncrementID隔開。這樣做,就可以做高性能產生ID,而且確保不重復。甚至可以更進一步,SEED由一個中心服務器生成。使用9個分隔符號隔開SEED和IncrementID,好處是SEED是變長,而不是使用固定位數來保存SEED,這樣產生的ID會更短,可讀性更好。

    舉例,34915,其中34時SEED,15是IncrementID,9是分隔符,SEED部分采用九進制表示法,確保不出現9,第一個9之后的內容屬于IncrementID。

     


    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/happyflystone/archive/2007/11/27/1903854.aspx



    Author: orangelizq
    email: orangelizq@163.com

    歡迎大家訪問我的個人網站 萌萌的IT人
    posted on 2009-09-05 15:22 桔子汁 閱讀(3337) 評論(0)  編輯  收藏 所屬分類: other
    主站蜘蛛池模板: 日韩免费精品视频| 一级视频免费观看| 亚洲中文字幕人成乱码| 亚洲黄色三级网站| 国产精品久久久久免费a∨| 免费VA在线观看无码| 亚洲狠狠婷婷综合久久蜜芽| 亚洲欧美日本韩国| 亚洲AV无码一区二区三区性色| 亚洲成人精品久久| 7777久久亚洲中文字幕蜜桃| 亚洲高清无在码在线无弹窗| 亚洲国产精品张柏芝在线观看| 亚洲综合无码AV一区二区| 四虎www免费人成| 日本v片免费一区二区三区| 国产一区二区免费在线| 精品久久久久久久久免费影院| a毛片在线免费观看| 免费人成大片在线观看播放| 亚洲视频在线免费| 久久久久国产免费| 成年免费a级毛片免费看无码| 亚洲av日韩综合一区久热| 精品一区二区三区无码免费直播| 亚洲 暴爽 AV人人爽日日碰| 亚洲hairy多毛pics大全| 一级片在线免费看| 精品视频一区二区三区免费| 免费能直接在线观看黄的视频| 国产一级片免费看| 四虎成年永久免费网站 | 亚洲成在人线aⅴ免费毛片| 女人18毛片a级毛片免费| 波多野结衣中文一区二区免费| 免费观看毛片视频| 国产亚洲精品自在线观看| 久久精品国产亚洲AV无码偷窥| 亚洲午夜视频在线观看| 亚洲最大av资源站无码av网址| 久久久久精品国产亚洲AV无码|