青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 15,comments - 21,trackbacks - 0
      之前因?yàn)闀r(shí)間匆忙,大區(qū)里產(chǎn)生唯一ID只是簡(jiǎn)單寫了一個(gè)方法,今天趁著有時(shí)間,把里面一些過程寫出來,也算是個(gè)總結(jié)。
      首先說說需求,現(xiàn)在游戲里數(shù)據(jù)庫為了分散熱點(diǎn),都采用分表方式,以前那種一張表AUTO_INCREMENT的方式顯然不行了,那么將唯一ID放到業(yè)務(wù)進(jìn)程里可行嗎?這個(gè)也不好,因?yàn)楝F(xiàn)在后臺(tái)都是多個(gè)部署,每個(gè)進(jìn)程可以保證ID唯一,但是存到數(shù)據(jù)庫的時(shí)候就可能重復(fù),所以我們還是得在DB上做文章。
      因此就有了上篇文章的解決方案,單獨(dú)一張表,這張表的作用就是專門產(chǎn)生唯一ID,而且為多個(gè)業(yè)務(wù)提供唯一ID,多進(jìn)程情況下也不需要鎖表,效率比較高,是不是很像設(shè)計(jì)模式里的工廠。接著我來分析下這張表。我們?cè)賮砜纯幢斫Y(jié)構(gòu)和用法
create table SeqTab 
   iSeqNo bigint(20) not null default 0,   //表示唯一ID
   iSeqType int(11) not null default 0,   //表示業(yè)務(wù)ID
   primary key(iSeqNo,iSeqType));
   insert into SeqTab values(0,1);        //初始化,假設(shè)一個(gè)業(yè)務(wù)編號(hào)為1
   update SeqTab set iSeqNo=last_insert_id(iSeqNo+1) where iSeqType=1;
   select last_insert_id();                   //這兩句是獲取一個(gè)業(yè)務(wù)的唯一ID,供業(yè)務(wù)進(jìn)程使用。
   其實(shí)說到這張表,關(guān)鍵是說LAST_INSERT_ID()這個(gè)方法。它有兩種形式LAST_INSERT_ID(),LAST_INSERT_ID(expr)。
   這個(gè)東西的特點(diǎn)是,1.屬于每個(gè)CONNECTION,CONNECTION之間相互不會(huì)影響 2.不屬于某個(gè)具體的表 3.返回最后一次INSERT AUTO_INCREMENT的值 4.假如以此使用INSERT插入    多行數(shù)據(jù),只返回第一行數(shù)據(jù)產(chǎn)生的值 5.如果你UPDATE某個(gè)AUTO_INCREMENT的值,不會(huì)影響LAST_INSERT_ID()返回值
   LAST_INSERT_ID(expr)與LAST_INSERT_ID()稍有不同,首先它返回expr的值,其次它的返回值會(huì)記錄在LAST_INSERT_ID()。
   我們這里主要使用到了第一和第二個(gè)特點(diǎn),每個(gè)進(jìn)程并發(fā)執(zhí)行update SeqTab set iSeqNo=last_insert_id(iSeqNo+1) where iSeqType=1;,就獲取屬于進(jìn)程自己的iSeqNo并且記錄在 LAST_INSERT_ID中,通過第二句取出該值。   
    接著我們?cè)诒容^下其他一些辦法。
    第一種是直接一張表,里面有一個(gè)ID字段,設(shè)置成AUTO_INCREMENT。這個(gè)的問題是每個(gè)業(yè)務(wù)ID不是連續(xù)的,是離散的。
    第二種是使用GUID或者UUID,但是這個(gè)問題我個(gè)人覺得是效率上的差異,字符串沒有數(shù)字的效率好,另外數(shù)字ID今后也可以拼接一些區(qū)信息,之后跨區(qū)的時(shí)候可以方便獲取對(duì)象是哪個(gè)區(qū)的.
posted on 2012-12-06 23:01 梨樹陽光 閱讀(2268) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫

FeedBack:
# re: 大區(qū)中分配玩家唯一ID的辦法(續(xù))
2012-12-07 13:08 | Daly
以前設(shè)計(jì)過這樣的方案, 也是一種常見的id分配方案了。

這個(gè)方案的短板在于:分配能力受DB處理能力限制,單點(diǎn)故障問題,另外這個(gè)SepTab表的數(shù)據(jù)至關(guān)重要,數(shù)據(jù)要從一而終,不能容許任何閃失。

利用劃分號(hào)段的方法,比方說:server_id * 1000000 + local increment也是一種不錯(cuò)的解決方案。全球手機(jī)號(hào)碼分配,IP分配也就是這么干嘛。
這方案的缺點(diǎn)是玩家最大ID數(shù)會(huì)受限制,而且所有玩家id長(zhǎng)度相等,視乎你的玩家規(guī)模了。  回復(fù)  更多評(píng)論
  
# re: 大區(qū)中分配玩家唯一ID的辦法(續(xù))
2012-12-14 09:21 | 5
Guid不是字符串  回復(fù)  更多評(píng)論
  

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产一区二区三区四区五区美女 | 亚洲天堂黄色| 欧美黑人国产人伦爽爽爽| 久久久久久久国产| 亚洲国产乱码最新视频| 欧美黑人国产人伦爽爽爽| 欧美成人免费大片| 一区二区激情视频| 亚洲视频1区2区| 国产日韩精品一区观看| 久久精品视频免费| 久久久久久免费| 亚洲精选在线| 亚洲性视频网址| 国产在线精品二区| 亚洲国产欧美一区二区三区同亚洲 | 久久国产一二区| 在线精品在线| 99精品热视频| 伊人久久噜噜噜躁狠狠躁| 亚洲国产精品一区在线观看不卡| 欧美理论电影网| 欧美一区午夜精品| 欧美xart系列高清| 亚洲一区在线观看视频| 欧美一区二区在线观看| 最近中文字幕日韩精品| av成人手机在线| 国内成人在线| 亚洲精品一区二区在线观看| 国产精品午夜春色av| 欧美福利一区| 国产精品腿扒开做爽爽爽挤奶网站 | 国产精品视频yy9099| 久久亚洲精品一区二区| 欧美性大战xxxxx久久久| 老司机67194精品线观看| 欧美激情综合色综合啪啪| 久久精品国产亚洲一区二区三区| 欧美精品一区二区三区在线看午夜| 午夜亚洲福利| 欧美电影免费观看高清| 久久精品国产亚洲高清剧情介绍| 欧美激情视频给我| 久久综合九色九九| 国产美女诱惑一区二区| 99v久久综合狠狠综合久久| 激情欧美日韩一区| 午夜电影亚洲| 亚洲免费小视频| 欧美日韩国产va另类| 欧美成人自拍| 好看不卡的中文字幕| 亚洲综合国产| 午夜精品三级视频福利| 欧美日韩一区免费| 亚洲欧洲日韩在线| 亚洲片国产一区一级在线观看| 性8sex亚洲区入口| 香蕉av777xxx色综合一区| 欧美日韩一区二区视频在线观看| 亚洲成色777777在线观看影院| 在线精品观看| 美女脱光内衣内裤视频久久网站| 久久影视三级福利片| 国产中文一区二区| 久久国产精品久久久久久| 久久久久九九九九| 伊人成人网在线看| 久久久综合网| 欧美大片一区二区三区| 亚洲国产清纯| 欧美国产亚洲另类动漫| 欧美激情精品久久久久久黑人| 亚洲电影在线观看| 蜜月aⅴ免费一区二区三区| 欧美高清hd18日本| 日韩亚洲欧美高清| 欧美性色视频在线| 亚洲欧美亚洲| 久久久精品免费视频| 好吊色欧美一区二区三区视频| 久久久久久综合| 欧美成年网站| 在线视频欧美一区| 国产麻豆精品theporn| 欧美一级二级三级蜜桃| 免费亚洲视频| 日韩网站在线看片你懂的| 欧美日韩成人一区二区三区| 亚洲视频每日更新| 久久亚洲精品伦理| 一区二区欧美在线观看| 欧美吻胸吃奶大尺度电影| 欧美一级欧美一级在线播放| 免费观看在线综合色| 亚洲精品无人区| 国产伦精品一区二区三区高清版 | 亚洲国产精品热久久| 亚洲欧美成人一区二区三区| 韩日欧美一区二区| 欧美日韩国产欧| 欧美在线视频二区| 亚洲精品欧美激情| 久久久久久夜| 一区二区三区日韩在线观看| 国产欧美一区二区三区在线老狼| 狂野欧美一区| 亚洲一区二区三区777| 欧美国产欧美综合 | 亚洲欧美日韩国产精品| 亚洲电影第1页| 国产美女精品视频| 欧美久久一级| 久久手机精品视频| 亚洲午夜精品久久久久久app| 免费看亚洲片| 午夜亚洲性色视频| 一区二区三区久久精品| 在线观看中文字幕不卡| 国产精品伦一区| 欧美伦理影院| 美女黄毛**国产精品啪啪| 午夜精品久久久久久久蜜桃app| 亚洲国产日韩综合一区| 老牛国产精品一区的观看方式| 亚洲小视频在线观看| 亚洲欧洲一区二区天堂久久| 国产一区二区三区高清在线观看| 欧美日韩综合精品| 欧美精品在欧美一区二区少妇| 久久天天躁狠狠躁夜夜av| 欧美一区二粉嫩精品国产一线天| 一区二区三区四区精品| 日韩视频一区二区三区| 欧美激情综合色| 欧美激情一区二区三区高清视频| 久久久久久一区| 久久青青草综合| 久久精品国产清自在天天线| 欧美一区在线视频| 欧美伊人精品成人久久综合97| 亚洲在线观看免费| 亚洲欧美成人一区二区三区| 亚洲小视频在线观看| 亚洲在线不卡| 午夜精品久久| 欧美专区在线观看一区| 久久精品五月婷婷| 久久久久久综合| 久久香蕉精品| 欧美国产综合| 日韩视频一区二区在线观看| 亚洲精品一区二区三区蜜桃久| 亚洲国产日韩欧美一区二区三区| 亚洲黄色视屏| 99re66热这里只有精品3直播| 夜夜嗨av一区二区三区免费区| 一本久道久久综合中文字幕 | 久久免费国产| 免费观看亚洲视频大全| 亚洲国产成人精品久久久国产成人一区 | 亚洲深爱激情| 亚洲欧美在线免费| 久久久精品999| 亚洲成色最大综合在线| 亚洲免费电影在线观看| 亚洲一区二区三区高清| 久久精品亚洲热| 欧美激情精品久久久久久| 欧美日韩中文字幕| 国内精品久久久久伊人av| 亚洲国产另类久久精品| 亚洲天堂黄色| 狂野欧美激情性xxxx| 亚洲激情综合| 亚洲欧美区自拍先锋| 久久资源在线| 欧美视频精品一区| 精品69视频一区二区三区| 一区二区三区黄色| 久久久久久尹人网香蕉| 亚洲人成在线播放网站岛国| 亚洲一区二区在线免费观看| 久久精品视频在线看| 国产精品分类| 亚洲激精日韩激精欧美精品| 亚洲自拍三区| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲免费观看高清在线观看| 久久九九国产精品| 国产精品久久看| 亚洲免费观看高清完整版在线观看熊 | 久热爱精品视频线路一| 亚洲靠逼com| 久久资源在线| 国内成人自拍视频| 亚洲男人的天堂在线aⅴ视频| 欧美国产亚洲另类动漫| 欧美一区二区在线观看|