zoukankan      html  css  js  c++  java
  • 【练习】分区

    1.启动新的mysql客户机会话,确认全局变量innodb_file_per_table 已启用

    2.在world数据库内创建名为city_part的新表,其具有与city相同的列定义

    3.使用show table status 语句确认该新表是否已分区,在终端窗口中输入一下内容,得到的结果如下所示。

    4.通过alter table 语句修改该新表来添加四个range 类型分区 (使用ID 列)在终端窗口输入以下内容,得到的结果如下所示。

    5.再次显示表分区的状态。

    6.通过插入原始表中的所有行,完成city表到city_part的复制,在终端窗口输入以下内容,得到的显示结果如下。

    7.在单独的终端窗口中检查新表文件的(.par 和 .ibd)的mysql数据目录。

    8.通过使用explain partitions 显示用于查询所有表数据的分区来确认city_part表分区,在mysql窗口中输入以下的内容。

    9.确定将用于查询city_part表数据的分区,其中ID值小于2000。

    10.重新定义city_part表来将key分区用于三个单独的分区,在终端窗口中输入以下内容,得到的结果如下所示。

    11.通过使用explain partitions 显示用于查询所有表数据的分区来确认表分区的修改。

    12.检查已修改的标文件的mysql数据目录。

    13.查询information_schema数据库中的partitions表,以了解city_part表中的分区名称。

    1.

    mysql> show variables like 'innodb_file_per_table';
    +-----------------------+-------+
    | Variable_name         | Value |
    +-----------------------+-------+
    | innodb_file_per_table | ON    |
    +-----------------------+-------+
    1 row in set (0.00 sec)

    2.

    mysql> use world;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> create table city_part like city;
    Query OK, 0 rows affected (0.11 sec)

    3.

    mysql> show table status like 'city_part'G;
    *************************** 1. row ***************************
               Name: city_part
             Engine: InnoDB
            Version: 10
         Row_format: Compact
               Rows: 0
     Avg_row_length: 0
        Data_length: 16384
    Max_data_length: 0
       Index_length: 16384
          Data_free: 0
     Auto_increment: 1
        Create_time: 2016-11-04 03:32:45
        Update_time: NULL
         Check_time: NULL
          Collation: latin1_swedish_ci
           Checksum: NULL
     Create_options: 
            Comment: 
    1 row in set (0.00 sec)

    4.

    mysql> alter table city_part partition by range (id) (
        -> partition p0 values less than (1000),
        -> partition p1 values less than (2000),
        -> partition p2 values less than (3000),
        -> partition p3 values less than maxvalue
        -> );
    Query OK, 0 rows affected (0.49 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    5.

    mysql> show table status like 'city_part'G
    *************************** 1. row ***************************
               Name: city_part
             Engine: InnoDB
            Version: 10
         Row_format: Compact
               Rows: 4
     Avg_row_length: 16384
        Data_length: 65536
    Max_data_length: 0
       Index_length: 65536
          Data_free: 0
     Auto_increment: 1
        Create_time: 2016-11-04 03:43:37
        Update_time: NULL
         Check_time: NULL
          Collation: latin1_swedish_ci
           Checksum: NULL
     Create_options: partitioned
            Comment: 
    1 row in set (0.01 sec)

    6.

    mysql> insert into city_part select * from city;
    Query OK, 4080 rows affected (0.29 sec)
    Records: 4080  Duplicates: 0  Warnings: 0

    7.

    [root@enmo ~]# cd /var/lib/mysql/world/
    [root@enmo world]# ls -l
    total 1848
    -rw-rw----. 1 mysql mysql   8710 Nov  2 19:10 city.frm
    -rw-rw----. 1 mysql mysql 589824 Nov  3 04:58 city.ibd
    -rw-rw----. 1 mysql mysql   8710 Nov  4 03:43 city_part.frm
    -rw-rw----. 1 mysql mysql     32 Nov  4 03:43 city_part.par
    -rw-rw----. 1 mysql mysql 212992 Nov  4 03:48 city_part#P#p0.ibd
    -rw-rw----. 1 mysql mysql 212992 Nov  4 03:48 city_part#P#p1.ibd
    -rw-rw----. 1 mysql mysql 212992 Nov  4 03:48 city_part#P#p2.ibd
    -rw-rw----. 1 mysql mysql 212992 Nov  4 03:48 city_part#P#p3.ibd
    -rw-rw----. 1 mysql mysql   9172 Nov  2 19:10 country.frm
    -rw-rw----. 1 mysql mysql 163840 Nov  2 19:10 country.ibd
    -rw-rw----. 1 mysql mysql   8702 Nov  2 19:10 countrylanguage.frm
    -rw-rw----. 1 mysql mysql 229376 Nov  2 19:10 countrylanguage.ibd
    -rw-rw----. 1 mysql mysql     65 Nov  2 19:10 db.opt

    8.

    mysql> explain partitions select * from city_partG
    *************************** 1. row ***************************
               id: 1
      select_type: SIMPLE
            table: city_part
       partitions: p0,p1,p2,p3
             type: ALL
    possible_keys: NULL
              key: NULL
          key_len: NULL
              ref: NULL
             rows: 4080
            Extra: NULL
    1 row in set (0.00 sec)

    9.

    mysql> explain partitions select * from city_part where id <2000G
    *************************** 1. row ***************************
               id: 1
      select_type: SIMPLE
            table: city_part
       partitions: p0,p1
             type: range
    possible_keys: PRIMARY
              key: PRIMARY
          key_len: 4
              ref: NULL
             rows: 1997
            Extra: Using where
    1 row in set (0.00 sec)

    10.

    mysql> alter table city_part partition by key (id) partitions 3;
    Query OK, 4080 rows affected (0.67 sec)
    Records: 4080  Duplicates: 0  Warnings: 0

    11.

    mysql> explain partitions select * from city_partG;
    *************************** 1. row ***************************
               id: 1
      select_type: SIMPLE
            table: city_part
       partitions: p0,p1,p2
             type: ALL
    possible_keys: NULL
              key: NULL
          key_len: NULL
              ref: NULL
             rows: 1350
            Extra: NULL
    1 row in set (0.00 sec)

    12.

    [root@enmo world]# ls -l
    total 1768
    -rw-rw----. 1 mysql mysql   8710 Nov  2 19:10 city.frm
    -rw-rw----. 1 mysql mysql 589824 Nov  3 04:58 city.ibd
    -rw-rw----. 1 mysql mysql   8710 Nov  4 03:58 city_part.frm
    -rw-rw----. 1 mysql mysql     32 Nov  4 03:58 city_part.par
    -rw-rw----. 1 mysql mysql 245760 Nov  4 03:58 city_part#P#p0.ibd
    -rw-rw----. 1 mysql mysql 278528 Nov  4 03:58 city_part#P#p1.ibd
    -rw-rw----. 1 mysql mysql 245760 Nov  4 03:58 city_part#P#p2.ibd
    -rw-rw----. 1 mysql mysql   9172 Nov  2 19:10 country.frm
    -rw-rw----. 1 mysql mysql 163840 Nov  2 19:10 country.ibd
    -rw-rw----. 1 mysql mysql   8702 Nov  2 19:10 countrylanguage.frm
    -rw-rw----. 1 mysql mysql 229376 Nov  2 19:10 countrylanguage.ibd
    -rw-rw----. 1 mysql mysql     65 Nov  2 19:10 db.opt

    13.

    mysql> select table_name,
        -> group_concat(partition_name)
        -> from information_schema.partitions
        -> where table_schema='world'
        -> and table_name='city_part';
    +------------+------------------------------+
    | table_name | group_concat(partition_name) |
    +------------+------------------------------+
    | city_part  | p0,p1,p2                     |
    +------------+------------------------------+
    1 row in set (0.01 sec)
  • 相关阅读:
    SQLSERVER 2012之AlwaysOn -- 一次硬件升级引发的问题
    SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化
    Replication的犄角旮旯(九)-- sp_setsubscriptionxactseqno,赋予订阅活力的工具
    关于X锁的问题--由select+X锁是否持有到事务结束的误区
    SQLServer 2012之AlwaysOn —— 指定数据同步链路,消除网络抖动导致的提交延迟问题
    Replication的犄角旮旯(八)-- 订阅与发布异构的问题
    Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)
    JavaScript 学习笔记 -- String.trim + format
    SQL笔记
    SQL笔记
  • 原文地址:https://www.cnblogs.com/tomatoes-/p/6028041.html
Copyright © 2011-2022 走看看