<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://www.0773linji.com/web/mysql_partitions.html

    【MySQL使用分區(qū)表的好處】
    1.可以把一些歸類(lèi)的數(shù)據(jù)放在一個(gè)分區(qū)中,可以減少服務(wù)器檢查數(shù)據(jù)的數(shù)量加快查詢(xún)。
    2.方便維護(hù),通過(guò)刪除分區(qū)來(lái)刪除老的數(shù)據(jù)。
    3.分區(qū)數(shù)據(jù)可以被分布到不同的物理位置,可以做分布式有效利用多個(gè)硬盤(pán)驅(qū)動(dòng)器。

    【MySQL可以建立四種分區(qū)類(lèi)型的分區(qū)】
    RANGE 分區(qū):基于屬于一個(gè)給定連續(xù)區(qū)間的列值,把多行分配給分區(qū)。
    LIST 分區(qū):類(lèi)似于按RANGE分區(qū),區(qū)別在于LIST分區(qū)是基于列值匹配一個(gè)離散值集合中的某個(gè)值來(lái)進(jìn)行選擇。
    HASH分區(qū):基于用戶(hù)定義的表達(dá)式的返回值來(lái)進(jìn)行選擇的分區(qū),該表達(dá)式使用將要插入到表中的這些行的列值進(jìn)行計(jì)算。這個(gè)函數(shù)可以包含MySQL 中有效的、產(chǎn)生非負(fù)整數(shù)值的任何表達(dá)式。
    KEY 分區(qū):類(lèi)似于按HASH分區(qū),區(qū)別在于KEY分區(qū)只支持計(jì)算一列或多列,且MySQL 服務(wù)器提供其自身的哈希函數(shù)。必須有一列或多列包含整數(shù)值。
    一般用得多的是range分區(qū)和list分區(qū)。


    【查看是否支持分區(qū)】

    show variables like "%part%";

    【如何查看mysql分區(qū)信息】

    select * from INFORMATION_SCHEMA.PARTITIONS where table_name='user'; (這里查看user表的分區(qū)信息)

    【查看執(zhí)行一條查詢(xún)SQL會(huì)掃描的分區(qū)】

    explain partitions select * from user where id=10;

    【如何創(chuàng)建分區(qū)】
    1.建表時(shí)就分區(qū):

    CREATE TABLE IF NOT EXISTS `user` ( 
       `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶(hù)ID', 
       `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名稱(chēng)', 
       `sex` int(1) NOT NULL DEFAULT '0' COMMENT '0為男,1為女', 
       PRIMARY KEY (`id`) 
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 
    PARTITION BY RANGE (id) ( 
         PARTITION p0 VALUES LESS THAN (3), 
         PARTITION p1 VALUES LESS THAN (6), 
         PARTITION p2 VALUES LESS THAN (9), 
         PARTITION p3 VALUES LESS THAN (12), 
         PARTITION p4 VALUES LESS THAN MAXVALUE 
    );

    2.對(duì)現(xiàn)有表進(jìn)行分區(qū):可以對(duì)現(xiàn)有表進(jìn)行分區(qū),并且會(huì)按規(guī)則自動(dòng)的將表中的數(shù)據(jù)分配相應(yīng)的分區(qū)中

    alter table 表名 partition by RANGE(字段) 
    (PARTITION p1 VALUES less than (1), 
    PARTITION p2 VALUES less than (5), 
    PARTITION p3 VALUES less than MAXVALUE);

    【刪除一個(gè)分區(qū)】
    (當(dāng)刪除了一個(gè)分區(qū),也同時(shí)刪除了該分區(qū)中所有的數(shù)據(jù))
    ALTER TABLE 表名 DROP PARTITION p2;

    【分區(qū)合并】
    下面的SQL,將p201001 - p201009 合并為3個(gè)分區(qū)p2010Q1 - p2010Q3

    ALTER TABLE sale_data
        REORGANIZE PARTITION p201001,p201002,p201003,
     
        p201004,p201005,p201006,
     
        p201007,p201008,p201009 INTO
     
        (
     
        PARTITION p2010Q1 VALUES LESS THAN (201004),
     
        PARTITION p2010Q2 VALUES LESS THAN (201007),
     
        PARTITION p2010Q3 VALUES LESS THAN (201010)
     
       );

    【分區(qū)的拆分】
    下面的SQL,將p2010Q1 分區(qū),拆分為s2009 與s2010 兩個(gè)分區(qū)

    ALTER TABLE sale_data REORGANIZE PARTITION p2010Q1 INTO (
     
       PARTITION s2009 VALUES LESS THAN (201001),
                
        PARTITION s2010 VALUES LESS THAN (201004)
     
       );

    【分區(qū)索引的局限】
    1.所有分區(qū)都要使用同樣的引擎。
    2.分區(qū)表的每一個(gè)唯一索引必須包含由分區(qū)函數(shù)引用的列。
    3.mysql能避免查詢(xún)所有的分區(qū),但仍然鎖定了所有分區(qū)。
    4.分區(qū)函數(shù)能使用的函數(shù)和表達(dá)式有限,例如函數(shù)有上面的4種。
    5.分區(qū)不支持外鍵。
    6.不能使用LOAD INDEX INTO CACHE
    7.分區(qū)并不能總是改善性能,要進(jìn)行性能評(píng)測(cè)。

    posted on 2013-02-22 17:43 SIMONE 閱讀(920) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): mysql
    主站蜘蛛池模板: 国产成人精品日本亚洲专区61| 久久精品免费一区二区三区| 亚洲精品无AMM毛片| 亚洲免费电影网站| 亚洲字幕在线观看| 久久精品国产亚洲αv忘忧草| 麻豆狠色伊人亚洲综合网站| 亚洲精品福利你懂| 亚洲AV无码一区二区三区性色| 亚洲精品无码专区在线| 亚洲av成人一区二区三区在线播放| 亚洲精品国产第一综合99久久 | 免费一级毛片在级播放| 免费看a级黄色片| 国产免费变态视频网址网站| 免费人成在线观看播放国产| 亚洲狠狠爱综合影院婷婷| 亚洲色自偷自拍另类小说 | 女性无套免费网站在线看| 成人au免费视频影院| 国产真实伦在线视频免费观看| 又粗又大又猛又爽免费视频| 国产精品V亚洲精品V日韩精品| 亚洲无线观看国产精品| 亚洲精品午夜在线观看| 亚洲夂夂婷婷色拍WW47| 美女羞羞视频免费网站| 免费91最新地址永久入口| 免费看片在线观看| 好爽好紧好大的免费视频国产| 亚洲区小说区图片区| 亚洲男人天堂2017| 亚洲人成无码网站在线观看| 男女啪啪免费体验区| 全免费a级毛片免费看| 91情侣在线精品国产免费| 亚洲国产精品狼友中文久久久| 久久精品国产亚洲AV麻豆不卡| 亚洲免费视频观看| 瑟瑟网站免费网站入口| 麻豆成人久久精品二区三区免费|