最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

超大數(shù)據(jù)量存儲(chǔ)常用數(shù)據(jù)庫分表分庫算法總結(jié)

 更新時(shí)間:2015年07月06日 11:44:42   投稿:junjie  
這篇文章主要介紹了超大數(shù)據(jù)量存儲(chǔ)常用數(shù)據(jù)庫分表分庫算法總結(jié),本文講解了按自然時(shí)間來分表/分庫、按數(shù)字類型hash分表/分庫、按md5值來分表/分庫三種方法,以及分表所帶來的問題探討,需要的朋友可以參考下

當(dāng)一個(gè)應(yīng)用的數(shù)據(jù)量大的時(shí)候,我們用單表和單庫來存儲(chǔ)會(huì)嚴(yán)重影響操作速度,如mysql的myisam存儲(chǔ),我們經(jīng)過測試,200w以下的時(shí)候,mysql的訪問速度都很快,但是如果超過200w以上的數(shù)據(jù),他的訪問速度會(huì)急劇下降,影響到我們webapp的訪問速度,而且數(shù)據(jù)量太大的話,如果用單表存儲(chǔ),就會(huì)使得系統(tǒng)相當(dāng)?shù)牟环€(wěn)定,mysql服務(wù)很容易掛掉。所以當(dāng)數(shù)據(jù)量超過200w的時(shí)候,建議系統(tǒng)工程師還是考慮分表.

以下是幾種常見的分表算法。

1.按自然時(shí)間來分表/分庫;

如一個(gè)應(yīng)用的數(shù)據(jù)在一年后數(shù)據(jù)量會(huì)達(dá)到200w左右,那么我們就可以考慮用一年的數(shù)據(jù)來做為一個(gè)表或者庫來存儲(chǔ),例如,表名為app,那么2010年的數(shù)據(jù)就是app_2010,app_2011;如果數(shù)據(jù)量在一個(gè)月就達(dá)到了200w左右,那么我們就可以用月份來分,app_2010_01,app_2010_02.

2.按數(shù)字類型hash分表/分庫;

如果我們要存儲(chǔ)用戶的信息,我們應(yīng)用的注冊(cè)量很大,我們用單表是不能滿足存儲(chǔ)需求的,那么我們就可以用用戶的編號(hào)來進(jìn)行hash,常見的是用取余操作,如果我們要分30張表來存儲(chǔ)用戶的信息,那么用戶編號(hào)為1的用戶1%30=1,那么我們就存在user_01表里,如用戶的編號(hào)為500,那么500%30=20,那么我們就將此用戶的信息存儲(chǔ)在user_20的表里.

3.按md5值來分表/分庫;

我們假設(shè)要存儲(chǔ)用戶上傳的文件,如果上傳量大的話,也會(huì)帶來系統(tǒng)的瓶頸問題,我們做過試驗(yàn),在一個(gè)文件夾下如果超過200個(gè)文件的話,文件的瀏覽效率會(huì)降低,當(dāng)然,這個(gè)不屬于我們本文討論的范圍,這塊也要做散列操作.我們可以用文件的用戶名來md5或者用文件的md5校驗(yàn)值來做,我們就可以用md5的前5位來做hash,這樣最多我們就可以得到5^5=3125個(gè)表,每次在存儲(chǔ)文件的時(shí)候,就可以用文件名的md5值的前5位來確定這個(gè)文件該存那張表.

4.實(shí)例:某微博的url加密算法和存儲(chǔ)策略的猜想.

現(xiàn)在好多微博都用這樣的url來訪問,如果他們的域名為www.example.com,那么如果你發(fā)微博的時(shí)候,你會(huì)發(fā)現(xiàn)你所發(fā)的url都變成了http://t.cn/Mx4ja1,這樣的形式,他們是怎么進(jìn)行這樣的轉(zhuǎn)換呢?我猜想就是用到了我們上面講的md5的存儲(chǔ)和查找規(guī)則,用你發(fā)的url來進(jìn)行md5,得到md5值之后,如我們例子來說,就會(huì)用前6位來進(jìn)行分表.

5.分表所帶來的問題.

分表也會(huì)帶來一系列的問題,如分頁的實(shí)現(xiàn),統(tǒng)計(jì)的實(shí)現(xiàn),如果我們要做一個(gè)所有數(shù)據(jù)的分頁,那么我們得每張表都得遍歷一遍,這樣訪問效率會(huì)很低下.之前我嘗試過用mysql的代理來實(shí)現(xiàn),最終用tcsql來實(shí)現(xiàn)了.

6.分表算法的選擇.

如果你的應(yīng)用數(shù)據(jù)量不是特別大的話,最好別用分表。

相關(guān)文章

  • SQL注入詳解(掃盲篇)

    SQL注入詳解(掃盲篇)

    剛進(jìn)公司的時(shí)候,研究的主要是SQL注入,因?yàn)橹皼]有搞過安全,所有費(fèi)了好長一段時(shí)間對(duì)SQL注入基本知識(shí)進(jìn)行了解。所以這篇文章并不是什么很深入的技術(shù)博客,或許應(yīng)該叫它‘ SQL注入掃盲 ’有需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-01-01
  • SELECT INTO用法及支持的數(shù)據(jù)庫

    SELECT INTO用法及支持的數(shù)據(jù)庫

    SQL中的SELECT INTO是一種將查詢結(jié)果插入到新表中的操作,能夠快速復(fù)制數(shù)據(jù)和表結(jié)構(gòu),本文主要介紹了SELECT INTO用法及支持的數(shù)據(jù)庫,感興趣的可以了解一下
    2025-03-03
  • 隱式轉(zhuǎn)換引起的sql慢查詢實(shí)戰(zhàn)記錄

    隱式轉(zhuǎn)換引起的sql慢查詢實(shí)戰(zhàn)記錄

    大家知道數(shù)據(jù)庫為了提高查詢速度,增加索引是必不可少的,但是有些時(shí)候即使你加了索引也不定有效果,這篇文章主要給大家介紹了一次因?yàn)殡[式轉(zhuǎn)換引起的sql慢查詢的相關(guān)資料,需要的朋友可以參考下。
    2018-04-04
  • SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實(shí)現(xiàn)

    SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡單實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 數(shù)據(jù)分析數(shù)據(jù)庫ClickHouse在大數(shù)據(jù)領(lǐng)域應(yīng)用實(shí)踐

    數(shù)據(jù)分析數(shù)據(jù)庫ClickHouse在大數(shù)據(jù)領(lǐng)域應(yīng)用實(shí)踐

    這篇文章主要為大家介紹了數(shù)據(jù)分析數(shù)據(jù)庫ClickHouse在大數(shù)據(jù)領(lǐng)域應(yīng)用實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 數(shù)據(jù)庫中row_number()?分組排序函數(shù)的具體使用

    數(shù)據(jù)庫中row_number()?分組排序函數(shù)的具體使用

    row_number()是一個(gè)強(qiáng)大的SQL窗口函數(shù),它通過partitionby和orderby子句實(shí)現(xiàn)分組和排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Sql Server 和 Access 操作數(shù)據(jù)庫結(jié)構(gòu)Sql語句小結(jié)

    Sql Server 和 Access 操作數(shù)據(jù)庫結(jié)構(gòu)Sql語句小結(jié)

    Sql Server 和 Access 操作數(shù)據(jù)庫結(jié)構(gòu)Sql語句小結(jié)...
    2007-06-06
  • 如何在mac中修改環(huán)境變量path

    如何在mac中修改環(huán)境變量path

    這篇文章主要介紹了如何在mac中修改環(huán)境變量path,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 在telnet下操作memcache詳解(操作命令詳解)

    在telnet下操作memcache詳解(操作命令詳解)

    這篇文章主要介紹了在telnet下操作memcache詳解,telnet下的memcache操作命令詳解,需要的朋友可以參考下
    2014-07-07
  • 你應(yīng)該知道的States字段使用規(guī)范

    你應(yīng)該知道的States字段使用規(guī)范

    這篇文章主要給大家介紹了一些大家應(yīng)該知道的States字段使用規(guī)范的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12

最新評(píng)論

大冶市| 彰化市| 社会| 资阳市| 滨海县| 冷水江市| 沛县| 安福县| 忻城县| 得荣县| 延长县| 寻甸| 迁西县| 隆尧县| 台北市| 乌鲁木齐市| 岫岩| 白银市| 高碑店市| 开原市| 左云县| 台东县| 镇远县| 达日县| 西昌市| 仙游县| 油尖旺区| 江川县| 成武县| 安泽县| 海口市| 阜阳市| 亚东县| 平南县| 高阳县| 江安县| 涡阳县| 兴业县| 怀仁县| 铜陵市| 资中县|