欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

mysql分表方法-----MRG_MyISAM引擎分表法

系統(tǒng) 2572 0

一般來(lái)說,當(dāng)我們的數(shù)據(jù)庫(kù)的數(shù)據(jù)超過了100w記錄的時(shí)候就應(yīng)該考慮分表或者分區(qū)了, 這次我來(lái)詳細(xì)說說分表的一些方法。目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事務(wù)和外鍵,我還不是很了解。

首先,我們需要想好到底分多少個(gè)表,前提當(dāng)然是滿足應(yīng)用。這里我使用了一個(gè)比較簡(jiǎn)單的分表方法,就是根據(jù)自增id的尾數(shù)來(lái)分,也就是說分0-9一共10個(gè)表,其取值也很好做,就是對(duì)10進(jìn)行取模。另外,還可以根據(jù)某一字段的md5值取其中幾位進(jìn)行分表,這樣的話,可以分的表就很多了。

好了,先來(lái)創(chuàng)建表吧,代碼如下

?

?

        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_0` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_1` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_2` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_3` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_4` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_5` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_6` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_7` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_8` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
        
           utf8 COLLATE utf8_general_ci  

  


        
        
          CREATE
        
        
          TABLE
        
        
           `test`.`article_9` (  

`id` 
        
        
          BIGINT
        
        ( 
        
          20
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`subject` 
        
        
          VARCHAR
        
        ( 
        
          200
        
         ) 
        
          NOT
        
        
          NULL
        
        
           ,  

`content` 
        
        
          TEXT
        
        
          NOT
        
        
          NULL
        
        
           ,  


        
        
          PRIMARY
        
        
          KEY
        
        
           ( `id` )  

) ENGINE 
        
        
          =
        
         MYISAM 
        
          CHARACTER
        
        
          SET
        
         utf8 COLLATE utf8_general_ci   
      

?

?好了10個(gè)表創(chuàng)建完畢了,需要注意的是, 這里的id不能設(shè)為自增,而且所有的表結(jié)構(gòu)必須一致,包括結(jié)構(gòu),類型,長(zhǎng)度,字段的順序都必須一致 那么對(duì)于這個(gè)id如何取得呢?后面我會(huì)詳細(xì)說明。現(xiàn)在,我們需要一個(gè)合并表,用于查詢,創(chuàng)建合并表的代碼如下

      
        CREATE
      
      
        TABLE
      
      
         `test`.`article` (  

`id` 
      
      
        BIGINT
      
      ( 
      
        20
      
       ) 
      
        NOT
      
      
        NULL
      
      
         ,  

`subject` 
      
      
        VARCHAR
      
      ( 
      
        200
      
       ) 
      
        NOT
      
      
        NULL
      
      
         ,  

`content` 
      
      
        TEXT
      
      
        NOT
      
      
        NULL
      
      
         ,  


      
      
        PRIMARY
      
      
        KEY
      
      
         ( `id` )  

) ENGINE
      
      
        =
      
      MRG_MyISAM 
      
        DEFAULT
      
       CHARSET
      
        =
      
      utf8 INSERT_METHOD
      
        =
      
      
        0
      
      
        UNION
      
      
        =
      
      (`article_0`,`article_1`,`article_2`,`article_3`,`article_4`,`article_5`,`article_6`,`article_7`,`article_8`,`article_9`); 
    

? ?? ?這里INSERT_METHOD=0在某些版本可能不工作,需要改成INSERT_METHOD=NO

注意,合并表也必須和前面的表有相同的結(jié)構(gòu),類型,長(zhǎng)度,包括字段的順序都必須一致 這里的INSERT_METHOD=0表示不允許對(duì)本表進(jìn)行insert操作。好了,當(dāng)需要查詢的時(shí)候, 我們可以只對(duì)article這個(gè)表進(jìn)行操作就可以了,也就是說這個(gè)表僅僅只能進(jìn)行select操作

那么對(duì)于插入也就是insert操作應(yīng)該如何來(lái)搞呢,首先就是獲取唯一的id了,這里就還需要一個(gè)表來(lái)專門創(chuàng)建id,代碼如下

      
        CREATE
      
      
        TABLE
      
      
         `test`.`create_id` (  

`id` 
      
      
        BIGINT
      
      ( 
      
        20
      
       ) 
      
        NOT
      
      
        NULL
      
       AUTO_INCREMENT 
      
        PRIMARY
      
      
        KEY
      
      
          

) ENGINE 
      
      
        =
      
       MYISAM   
    

??也?就是說,當(dāng)我們需要插入數(shù)據(jù)的時(shí)候,必須由這個(gè)表來(lái)產(chǎn)生id值,我的php代碼的方法如下

      
        function
      
      
         get_AI_ID() {  

    
      
      
        $sql
      
        = "insert into create_id (id) values('')"
      
        ;  

    
      
      
        $this
      
      ->db->query(
      
        $sql
      
      
        );  

    
      
      
        return
      
      
        $this
      
      ->db->
      
        insertID();  

}   
      
    

? ? 好了,現(xiàn)在假設(shè)我們要插入一條數(shù)據(jù)了,應(yīng)該怎么操作呢?還是繼續(xù)看代碼吧

            
              function
            
            
               new_Article() {  

    
            
            
              $id
            
              = 
            
              $this
            
            ->
            
              get_AI_ID();  

    
            
            
              $table_name
            
             = 
            
              $this
            
            ->get_Table_Name(
            
              $id
            
            
              );  

    
            
            
              $sql
            
             = "insert into {
            
              $table_name
            
            } (id,subject,content) values('{
            
              $id
            
            }','測(cè)試標(biāo)題','測(cè)試內(nèi)容')"
            
              ;  

    
            
            
              $this
            
            ->db->query(
            
              $sql
            
            
              );  

}  
              

/* * * 用于根據(jù)id獲取表名 */ function get_Table_Name( $id ) { return 'article_'. intval ( $id )%10 ; }

其實(shí)很簡(jiǎn)單的,對(duì)吧,就是先獲取id,然后根據(jù)id獲取應(yīng)該插入到哪個(gè)表,然后就很簡(jiǎn)單了。

對(duì)于update的操作我想應(yīng)該不需要再說了吧,無(wú)非是有了id,然后獲取表名,然后進(jìn)行update操作就好了。

mysql分表方法-----MRG_MyISAM引擎分表法


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久久视频在线 | 国产亚洲精品久久久久久久软件 | 婷婷久久五月天 | 国产高清视频在线 | 久久久久欧美激情 | 欧美全黄 | 日韩a在线看免费观看视频 五月天激情视频在线观看 成人97在线观看免费高清 | 日韩国产欧美视频 | 黄色三级在线观看 | 久久久精 | 大学生a级毛片免费视频 | 久久人人爽人人爽人人 | 久草久草久草 | 亚洲一区二区三区高清 | 国产福利视频一区美女 | 久久久久久一区 | 久久久久久av| 日韩欧美精品 | 久久久久免费观看 | 青草视频在线免费观看 | 99re6在线视频精品免费 | 成人在线视频免费 | 国产在线激情视频 | 婷婷色中文字幕 | 一区二区三区免费在线观看 | 97精品国产高清久久久久蜜芽 | 日韩在线观看中文字幕 | 国产日韩精品久久 | 激情九月婷婷 | 日本午夜色| 狠狠干天天干 | 九一免费版在线观看 | 亚洲欧美韩国日产综合在线 | 二区在线视频 | 久久精品视在线观看2 | 欧美黄色一区 | 波多野结衣中文在线播放 | 操人视频在线观看 | 亚洲免费三区 | 天天干天天干 | 久久视频在线免费观看 |