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

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

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

    posts - 495,comments - 227,trackbacks - 0
    http://lztian.com/blog/5921.html

    借用MySQL 的 auto_increment 特性可以產生唯一的可靠ID。

    表定義,關鍵在于auto_increment,和UNIQUE KEY的設置:

    1
    2
    3
    4
    5
    6
    CREATE TABLE `Tickets64` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `stub` char(1) NOT NULL default '',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `stub` (`stub`)
    ) ENGINE=MyISAM

    需要使用時,巧用replace into語法來獲取值,結合表定義的UNIQUE KEY,確保了一條記錄就可以滿足ID生成器的需求:

    1
    2
    REPLACE INTO Tickets64 (stub) VALUES ('a');
    SELECT LAST_INSERT_ID();

    以上方式中,通過MySQL的機制,可以確保此ID的唯一和自增,且適用于多并發的場景。官方對此的描述:https://dev.mysql.com/doc/refman/5.0/en/information-functions.html

    1
    2
    3
    It is multi-user safe because multiple clients can issue the UPDATE statement and
    get their own sequence value with the SELECT statement (or mysql_insert_id()),
    without affecting or being affected by other clients that generate their own sequence values.

    需要注意的是,若client采用PHP,則不能使用mysql_insert_id()獲取ID,原因見《mysql_insert_id() 在bigint型AI字段遇到的問題》:http://kaifage.com/notes/99/mysql-insert-id-issue- with-bigint-ai-field.html。

    Flickr 采取了此方案: http://code.flickr.net/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/

    相關:

    http://www.zhihu.com/question/30674667

    http://my.oschina.net/u/142836/blog/174465

    posted on 2016-06-28 18:48 SIMONE 閱讀(1336) 評論(0)  編輯  收藏 所屬分類: mysql
    主站蜘蛛池模板: 国产成人综合亚洲| 亚洲中文无码卡通动漫野外| 四虎精品成人免费视频| 久久久久久久久免费看无码| 亚洲欧洲高清有无| 日本精品人妻无码免费大全 | 亚洲色欲久久久久综合网| 国产精品亚洲一区二区三区| 免费国产怡红院在线观看| 羞羞的视频在线免费观看| 亚洲AV伊人久久青青草原| 五月天婷婷精品免费视频| 中文字幕亚洲日韩无线码| 久久性生大片免费观看性| 久久亚洲高清观看| 91香蕉国产线在线观看免费| 亚洲导航深夜福利| 午夜毛片不卡免费观看视频| www亚洲精品久久久乳| 亚洲午夜成人精品电影在线观看| 99精品免费视频| 亚洲国产日韩一区高清在线| 两性刺激生活片免费视频| 亚洲av无码兔费综合| 亚洲色欲一区二区三区在线观看| 久久免费区一区二区三波多野| 亚洲美女视频一区| 日韩a级毛片免费视频| 香蕉免费在线视频| 亚洲欧洲精品一区二区三区| 国产网站免费观看| 伊人免费在线观看高清版| 亚洲国产av一区二区三区丶| 国产a级特黄的片子视频免费| 亚洲一区二区三区免费| 亚洲国产精品久久丫| 免费人成在线观看网站视频| 香蕉免费一区二区三区| 亚洲日韩国产二区无码| 亚洲女同成av人片在线观看| 在线观看免费人成视频色|