<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使用分區表的好處】
    1.可以把一些歸類的數據放在一個分區中,可以減少服務器檢查數據的數量加快查詢。
    2.方便維護,通過刪除分區來刪除老的數據。
    3.分區數據可以被分布到不同的物理位置,可以做分布式有效利用多個硬盤驅動器。

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


    【查看是否支持分區】

    show variables like "%part%";

    【如何查看mysql分區信息】

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

    【查看執行一條查詢SQL會掃描的分區】

    explain partitions select * from user where id=10;

    【如何創建分區】
    1.建表時就分區:

    CREATE TABLE IF NOT EXISTS `user` ( 
       `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶ID', 
       `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名稱', 
       `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.對現有表進行分區:可以對現有表進行分區,并且會按規則自動的將表中的數據分配相應的分區中

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

    【刪除一個分區】
    (當刪除了一個分區,也同時刪除了該分區中所有的數據)
    ALTER TABLE 表名 DROP PARTITION p2;

    【分區合并】
    下面的SQL,將p201001 - p201009 合并為3個分區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)
     
       );

    【分區的拆分】
    下面的SQL,將p2010Q1 分區,拆分為s2009 與s2010 兩個分區

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

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

    posted on 2013-02-22 17:43 SIMONE 閱讀(920) 評論(0)  編輯  收藏 所屬分類: mysql
    主站蜘蛛池模板: 成人自慰女黄网站免费大全| 9久久免费国产精品特黄| 国产精品免费综合一区视频| 亚洲国产精品国自产拍AV| 在线免费观看国产| 久久久久久噜噜精品免费直播| 激情五月亚洲色图| 亚洲国产精品无码专区在线观看| 免费影院未满十八勿进网站| 亚洲欧洲国产经精品香蕉网| 亚洲午夜国产精品无码老牛影视 | 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲国产精品免费视频| 天天操夜夜操免费视频| www.黄色免费网站| 亚洲精品亚洲人成在线观看麻豆| 久久久青草青青国产亚洲免观| 亚洲国产日韩在线观频| 97在线视频免费| 免费观看无遮挡www的视频| av无码免费一区二区三区| 四虎最新永久免费视频| 成人au免费视频影院| 国产特级淫片免费看| 国产精品亚洲mnbav网站 | 最近中文字幕免费大全| 久久免费视频精品| 最近免费中文字幕大全视频 | 亚洲AV无码AV吞精久久| 猫咪免费观看人成网站在线| 免费午夜爽爽爽WWW视频十八禁 | 久久久久亚洲AV片无码下载蜜桃| 在线看片v免费观看视频777| 亚洲免费网站观看视频| 亚洲午夜福利精品无码| 亚洲成a人片毛片在线| 免费无码午夜福利片| 久热中文字幕在线精品免费| 亚洲天堂在线视频| 亚洲中文字幕乱码AV波多JI| 91成人免费福利网站在线|