<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        新浪微博,騰訊微博mysql數據庫主表猜想

        來源:懂視網 責編:小采 時間:2020-11-09 08:27:28
        文檔

        新浪微博,騰訊微博mysql數據庫主表猜想

        新浪微博,騰訊微博mysql數據庫主表猜想:出處:http://blog.csdn.net/cleanfield/article/details/6339428 注意,原文下面的評論也是難得的學習資料,千萬不能錯過 用戶信息表(t_user_info) 字段名稱 字節數 類型 描述 User_id 4 uint32 用戶編號(主鍵) User_name 2
        推薦度:
        導讀新浪微博,騰訊微博mysql數據庫主表猜想:出處:http://blog.csdn.net/cleanfield/article/details/6339428 注意,原文下面的評論也是難得的學習資料,千萬不能錯過 用戶信息表(t_user_info) 字段名稱 字節數 類型 描述 User_id 4 uint32 用戶編號(主鍵) User_name 2

        出處:http://blog.csdn.net/cleanfield/article/details/6339428 注意,原文下面的評論也是難得的學習資料,千萬不能錯過 用戶信息表(t_user_info) 字段名稱 字節數 類型 描述 User_id 4 uint32 用戶編號(主鍵) User_name 20 Char[20] 名稱 Msg_count 4

        出處: http://blog.csdn.net/cleanfield/article/details/6339428


        注意,原文下面的評論也是難得的學習資料,千萬不能錯過


        用戶信息表(t_user_info)

        字段名稱

        字節數

        類型

        描述

        User_id

        4

        uint32

        用戶編號(主鍵)

        User_name

        20

        Char[20]

        名稱

        Msg_count

        4

        uint32

        發布消息數量,可以作為t_msg_info水平切分新表的auto_increment

        Fans_count

        4

        uint32

        粉絲數量

        Follow_count

        4

        Uint32

        關注對象數量

        備注:以User_id取模分表

        用戶之間關系表(t_user_relation),必須有關注與被關注的關系

        字段名稱

        字節數

        類型

        描述

        User_id

        4

        uint32

        用戶編號(聯合主鍵)

        Follow_id

        4

        uint32

        被關注者編號(聯合主鍵)

        Type

        1

        Uint8

        關系類型(0,粉絲;1,關注)

        備注:關系是單向的,以User_id取模分表

        用戶消息索引表(t_uer_msg_index)

        字段名稱

        字節數

        類型

        描述

        User_id

        4

        uint32

        用戶編號(聯合主鍵)

        Author_id

        4

        uint32

        消息發布者編號(可能是被關注者,也可能是自己)(聯合主鍵)

        Msg_id

        4

        uint32

        消息編號(由消息發布者的msg_count自增)(聯合主鍵)

        Time_t

        4

        Uint32

        發布時間(必須是消息元數據產生時間)

        備注:此表就是當我們點擊“我的首頁”時拉取的消息列表,只是索引,Time_t對這些消息進行排序

        消息與消息關系表(t_msg_msg_relation)

        字段名稱

        字節數

        類型

        描述

        Reference_id

        4

        uint32

        引用消息用戶編號(聯合主鍵)

        Reference _msg_id

        4

        uint32

        引用消息編號(聯合主鍵)

        Referenced_id

        4

        uint32

        消息發布者編號

        Referenced _msg_id

        4

        uint32

        被引用消息編號

        Type

        1

        Uint8

        操作類型(1,評論;2,轉發)

        Time_t

        4

        Uint32

        發布時間

        Page_index

        4

        Uint32

        轉發或者評論頁碼

        備注:以Reference_id取模分表。

        騰訊微博比新浪微博好的一點是一個消息的所有評論和轉發都是被固定頁碼,這樣在點擊看評論的時候搜索效率更高,因為多了一個where Page_index的定位條件,當然帶來的問題就是可能看到有些頁的評論排版并不是滿頁,這就是因為標識為這個Page_index的評論有刪除操作。

        消息元數據表(t_msg_info)

        字段名稱

        字節數

        類型

        描述

        User_id

        4

        uint32

        發消息用戶編號(聯合主鍵)

        Msg_id

        4

        uint32

        消息編號(聯合主鍵)

        Content

        140

        Char[140]

        消息內容

        Type

        1

        Uint8

        消息類型(0,原創;1,評論;2,轉發)

        Commented_count

        4

        Uint32

        評論過數量(只增不減,刪除評論不影響此值,可以作為評論多頁顯示的頁碼)

        Comment_count

        4

        Uint32

        保留的評論數量

        Transferred_count

        4

        Uint32

        轉發過數量(只增不減,刪除轉發不影響此值,可以作為轉發多頁顯示的頁碼)

        Transfer_count

        4

        Uint32

        保留的轉發數量

        Time_t

        4

        Uint32

        發布時間

        備注:消息元數據中,content像可能存在圖片,這部分可以在分布式文件系統中存儲。在2011年數據庫大會上聽楊海潮的演講,對于nosql 也有涉及,本人能力有限,對這部分的職責還不清楚,希望高人指點。

        非常推崇楊海潮ppt中的歸檔做法,因為微博是有時間軸線的,對于一定時間之前的記錄可以分層次歸檔,這樣在前端的最新的數據表的壓力就會減輕很多。

        業務邏輯:

        1.A關注B

        1)在t_user_relation_A中添加

        A

        B

        1

        2)在t_user_relation_B中添加

        B

        A

        0

        2.原創發消息

        1)在t_msg_info_A中添加這條元消息,type為0

        2)更新t_user_info_A中Msg_count

        3)在t_uer_msg_index_A中插入A發的這條消息的索引(A的編號和消息編號)

        4)在t_user_relation_A中找到所有關注A的人,比如B,C,D,E,F等等,并發在這些用戶的t_uer_msg_index中插入A的這條信息索引,比如名人微博可以并發多個進程來實現對粉絲的消息同步

        3.A轉發B的消息msg_b

        1)在t_msg_info_A中添加這條元消息msg_a,type為2

        2)更新t_user_info_A中Msg_count

        3)在t_uer_msg_index_A中插入A發的這條消息的索引(A的編號和消息編號)

        4)在t_msg_info_B中更新msg_b的Transferred_count和Transfer_count

        5)在t_msg_msg_relation中添加User_a,msg_a與User_b,msg_b的轉發關系,page_index為Transferred_count%page_count

        4.A評論B的消息msg_b

        1)在t_msg_info_A中添加這條元消息msg_a,type為1

        2)更新t_user_info_A中Msg_count

        3)在t_uer_msg_index_A中插入A發的這條消息的索引(A的編號和消息編號)

        4)在t_msg_info_B中更新msg_b的Commented_count和Comment_count

        5)在t_msg_msg_relation中添加User_a,msg_a與User_b,msg_b的評論關系,page_index為Commented_count%page_count

        5.A刪除消息msg_a

        1)刪除t_msg_info中的元數據msg_a

        2)刪除t_uer_msg_index_A中的User_a,msg_a行記錄

        3)備注:如果A的msg_a被別人評論或者引用,那么在對方查看評論或者轉發的時候會提示“原消息已被作者刪除”

        6.A刪除轉發消息msg_a

        1)刪除t_msg_info_A中的元數據msg_a

        2)刪除t_uer_msg_index_A中的User_a,msg_a行記錄

        3)在t_msg_msg_relation_A表中找到msg_a的源消息,即B的msg_b

        4)刪除t_msg_msg_relation_A中user_a,msg_a和user_b,msg_b的轉發關系

        5)更新t_msg_info_B中msg_b記錄的Transfer_count,減1

        7.A刪除評論消息msg_a

        1)刪除t_msg_info_A中的元數據msg_a

        2)刪除t_uer_msg_index_A中的User_a,msg_a行記錄

        3)在t_msg_msg_relation_A表中找到msg_a的源消息,即B的msg_b

        4)刪除t_msg_msg_relation_A中user_a,msg_a和user_b,msg_b的評論關系

        5)更新t_msg_info_B中msg_b記錄的Commecnt_count,減1

        8.A拉取全部消息

        1)從t_uer_msg_index_A中拉取Author_id,Msg_id,Time_t索引,并以Time_t排序

        2)通過頁碼和每頁count控制返回結果數量,這樣避免了server io 壓力沖擊

        5月25日更新:

        1)條件允許的話,所有的index表可以放到內存中,全部cache,而元數據直接ssd,這樣讀速度會提高很多,當然也要做好熱備

        2)t_user_relation表最好做合并存儲

        5月27日更新:

        1)在第二步原創發消息要通知給粉絲,這時如果是明星,那么推送的數量可能數百萬,新浪采取的做法是對這數百萬粉絲進行區別對待,按照活躍度劃分為幾個層級,每個層級有一個推送時效限定,這樣可以做到最想看到這個信息的人能夠最及時的看到明星動態

        2)用硬件來提升速度,將所有index表放在memory上,元數據放在ssd上,數據可以現在這兩層上做處理,并定時持久化到mysql中

        3)提供批量處理接口,比如拉取最新更新索引

        4)在一定限度上容忍不一樣,但要實現最終一致性

        6月1日更新:

        本文用的是push模式,關于微博的pull模式,請參見 http://blog.csdn.net/cleanfield/archive/2011/05/27/6450626.aspx

        6月30日更新:

        在新浪微博中,評論和轉發都與原創消息是一樣的獨立記錄,只不過多了一條消息關系記錄,在展現的時候除了要展現自己添加的轉發內容或評論內容之外,還需要將最原始的那條目標消息取出來。


        12月8日更新:

        消息與消息關系表(t_msg_msg_relation)的備注中,應該是以Referenced_id取模分裂

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        新浪微博,騰訊微博mysql數據庫主表猜想

        新浪微博,騰訊微博mysql數據庫主表猜想:出處:http://blog.csdn.net/cleanfield/article/details/6339428 注意,原文下面的評論也是難得的學習資料,千萬不能錯過 用戶信息表(t_user_info) 字段名稱 字節數 類型 描述 User_id 4 uint32 用戶編號(主鍵) User_name 2
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人成网站影音先锋播放| 亚洲高清最新av网站| 亚洲国产精品一区二区久久| 一个人看的www视频免费在线观看| 国产视频精品免费| 国产亚洲高清在线精品不卡| 国产精品色午夜免费视频| 国产精品亚洲综合天堂夜夜| 又粗又大又硬又爽的免费视频 | 免费看内射乌克兰女| 国产又粗又猛又爽又黄的免费视频| 亚洲无人区码一二三码区别图片 | 亚洲大片免费观看| 免费99精品国产自在现线| 亚洲一区二区久久| 在线观看免费大黄网站| 无码的免费不卡毛片视频| 精品国产亚洲男女在线线电影 | 亚洲国产高清美女在线观看| 无码国产精品久久一区免费 | 99久久综合精品免费| 亚洲人成日本在线观看| 成人毛片免费观看视频在线 | 国产亚洲漂亮白嫩美女在线 | 午夜视频在线观看免费完整版| 久久亚洲AV成人无码国产电影| 亚洲不卡AV影片在线播放| 黄色网址免费在线观看| 亚洲短视频在线观看| 日本久久久免费高清| 中文字幕的电影免费网站| 亚洲国产精品成人精品软件| 免费精品一区二区三区在线观看| 日本永久免费a∨在线视频| 亚洲AV无码专区亚洲AV伊甸园 | 精精国产www视频在线观看免费| 亚洲一区中文字幕久久| 国产小视频在线观看免费| 国产亚洲免费的视频看| 亚洲综合激情五月色一区| 亚洲熟妇无码AV在线播放|