1、先停止Mysql

  [root@localhost ~]# /etc/init.d/mysqld stop

  Shutting down MySQL.[确定]

   2、修改 /etc/my.cnf配置文件

  [root@localhost ~]# vi /etc/my.cnf

  [mysqld]

  innodb_file_per_table = 1

  3、启动Mysql

  [root@localhost ~]# /etc/init.d/mysqld start

  Starting MySQL..[确定]

  4、连接到Mysql数据库

  [root@localhost ~]# mysql -uroot -p

  Enter password: 

  Welcome to the MySQL monitor.  Commands end with ; or \g.

  Your MySQL connection id is 1

  Server version: 5.5.22-log Source distribution

  Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

  Oracle is a registered trademark of Oracle Corporation and/or its

  affiliates. Other names may be trademarks of their respective

  owners.

  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  mysql> show databases;

      +--------------------+

      | Database           |

      +--------------------+

      | information_schema |

      | dbmonitor          |

      | mysql              |

      | performance_schema |

      | test               |

      +--------------------+

     5 rows in set (0.01 sec)

  mysql> show plugins;

    +-----------------------+--------+--------------------+---------+---------+

    | Name                  | Status | Type               | Library | License |

    +-----------------------+--------+--------------------+---------+---------+

    | binlog                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    | mysql_native_password | ACTIVE | AUTHENTICATION     | NULL    | GPL     |

    | mysql_old_password    | ACTIVE | AUTHENTICATION     | NULL    | GPL     |

    | MEMORY                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    | MRG_MYISAM            | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    | MyISAM                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    | CSV                   | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    | InnoDB                | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    | INNODB_TRX            | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |

    | INNODB_LOCKS          | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |

    | INNODB_LOCK_WAITS     | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |

    | INNODB_CMP            | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |

    | INNODB_CMP_RESET      | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |

    | INNODB_CMPMEM         | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |

    | INNODB_CMPMEM_RESET   | ACTIVE | INFORMATION SCHEMA | NULL    | GPL     |

    | PERFORMANCE_SCHEMA    | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    | partition             | ACTIVE | STORAGE ENGINE     | NULL    | GPL     |

    +-----------------------+--------+--------------------+---------+---------+

  mysql> use dbmonitor;

  Database changed

  5、创建分区表(history_text):

  mysql> create table history_text

  (

    id bigint(20) unsigned default null,

    itemid bigint(20) unsigned default null,

    clock int(11) default 0,

    value text default null,

    ns int(11) default 0,

    index itemid_idx (itemid),

    primary key(id,clock)

  ) engine=Innodb

  partition by range (clock)

  (

    partition p1_201502 values less than (unix_timestamp('2015-03-01')),

    partition p1_201503 values less than (unix_timestamp('2015-04-01')),

    partition p1_201504 values less than (unix_timestamp('2015-05-01')),

    partition p1_201505 values less than (unix_timestamp('2015-06-01')),

    partition p1_201506 values less than (unix_timestamp('2015-07-01')),

    partition p1_201507 values less than (unix_timestamp('2015-08-01')),

    partition p1_201508 values less than (unix_timestamp('2015-09-01')),

    partition p1_201509 values less than (unix_timestamp('2015-10-01')),

    partition p1_201510 values less than (unix_timestamp('2015-11-01')),

    partition p1_201511 values less than (unix_timestamp('2015-12-01')),

    partition p1_201512 values less than (unix_timestamp('2016-01-01')),

    partition p1_201601 values less than (unix_timestamp('2016-02-01')),

    partition p1_201602 values less than (unix_timestamp('2016-03-01')),

    partition p1_201603 values less than (unix_timestamp('2016-04-01')),

    partition p1_201604 values less than (unix_timestamp('2016-05-01')),

    partition p1_201605 values less than (unix_timestamp('2016-06-01')),

    partition p1_201606 values less than (unix_timestamp('2016-07-01')),

    partition p1_201607 values less than (unix_timestamp('2016-08-01')),

    partition p1_201608 values less than (unix_timestamp('2016-09-01')),

    partition p1_201609 values less than (unix_timestamp('2016-10-01')),

    partition p1_201610 values less than (unix_timestamp('2016-11-01')),

    partition p1_201611 values less than (unix_timestamp('2016-12-01')),

    partition p1_other_all values less than maxvalue

  );


    mysql>alter table history_text add primary key(id,clock);

  6、检查数据数据库配置参数是否生效。

    [root@localhost data]# ll
    总计 10900348
    drwx------ 2 mysql mysql       4096 03-20 09:40 dbmonitor
    -rw-rw---- 1 mysql mysql 7266631680 03-20 10:29 ibdata1
    -rw-rw---- 1 mysql mysql    5242880 03-20 10:30 ib_logfile0
    -rw-rw---- 1 mysql mysql    5242880 03-20 10:30 ib_logfile1
    drwxr-xr-x 2 mysql root        4096 03-18 00:18 mysql
    -rw-rw---- 1 mysql mysql      27338 03-18 00:18 mysql-bin.000001
    [root@localhost ~]# cd /usr/local/mysql/data/dbmonitor/
    [root@localhost dbmonitor]# ll
    总计 5112
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201503.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:34 history_text#P#p1_201504.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201505.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 10:06 history_text#P#p1_201506.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201507.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201508.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201509.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201510.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201511.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201512.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201601.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201602.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201603.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201604.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201605.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201606.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201607.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201608.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201609.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201610.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201611.ibd
    -rw-rw---- 1 mysql mysql 131072 03-18 09:35 history_text#P#p1_other_all.ibd

  7、查看分区表。
    mysql> select table_name, partition_name from information_schema.partitions
    -> where table_schema='dbmonitor' and table_name='history_text';
    +--------------+----------------+
    | table_name   | partition_name |
    +--------------+----------------+
    | history_text | p1_201503      |
    | history_text | p1_201504      |
    | history_text | p1_201505      |
    | history_text | p1_201506      |
    | history_text | p1_201507      |
    | history_text | p1_201508      |
    | history_text | p1_201509      |
    | history_text | p1_201510      |
    | history_text | p1_201511      |
    | history_text | p1_201512      |
    | history_text | p1_201601      |
    | history_text | p1_201602      |
    | history_text | p1_201603      |
    | history_text | p1_201604      |
    | history_text | p1_201605      |
    | history_text | p1_201606      |
    | history_text | p1_201607      |
    | history_text | p1_201608      |
    | history_text | p1_201609      |
    | history_text | p1_201610      |
    | history_text | p1_201611      |
    | history_text | p1_other_all   |
    +--------------+----------------+
    22 rows in set (0.01 sec)

    8、插入数据测试分区表。

    mysql> delimiter //

    mysql> create procedure insert_history()
        begin
           declare var int;
        set var=0;
        while var<100000 do
        insert into history_text values(var,var,1430496000,var,var);
        set var=var+1;
        end while;
        end;
        //


    mysql> delimiter ;

    mysql> call insert_test();

    Query OK, 1 row affected (2 min 46.97 sec)

  9、查看数据文件大小的变化。

[root@localhost data]# cd dbmonitor/
[root@localhost dbmonitor]# ll
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201503.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:34 history_text#P#p1_201504.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201505.ibd
-rw-rw---- 1 mysql mysql 19922944 03-20 10:54 history_text#P#p1_201506.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201507.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201508.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201509.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201510.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201511.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201512.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201601.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201602.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201603.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201604.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201605.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201606.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201607.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201608.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201609.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201610.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:21 history_text#P#p1_201611.ibd
-rw-rw---- 1 mysql mysql   131072 03-18 09:35 history_text#P#p1_other_all.ibd

    

[root@localhost data]# ll
总计 10919648
drwx------ 2 mysql mysql       4096 03-20 09:40 dbmonitor
-rw-rw---- 1 mysql mysql 7266631680 03-20 10:55 ibdata1
-rw-rw---- 1 mysql mysql    5242880 03-20 10:55 ib_logfile0
-rw-rw---- 1 mysql mysql    5242880 03-20 10:55 ib_logfile1
drwxr-xr-x 2 mysql root        4096 03-18 00:18 mysql
-rw-rw---- 1 mysql mysql      27338 03-18 00:18 mysql-bin.000001
-rw-rw---- 1 mysql mysql    1031892 03-18 00:18 mysql-bin.000002
-rw-rw---- 1 mysql mysql        126 03-18 00:23 mysql-bin.000003
-rw-rw---- 1 mysql mysql        126 03-18 00:25 mysql-bin.000004
-rw-rw---- 1 mysql mysql  703646366 03-18 00:58 mysql-bin.000005
-rw-rw---- 1 mysql mysql 1074397884 03-18 02:48 mysql-bin.000006
-rw-rw---- 1 mysql mysql 1073854162 03-18 04:00 mysql-bin.000007
-rw-rw---- 1 mysql mysql  973199491 03-18 04:43 mysql-bin.000008
-rw-rw---- 1 mysql mysql        126 03-18 09:19 mysql-bin.000009
-rw-rw---- 1 mysql mysql   41826406 03-18 11:01 mysql-bin.000010
-rw-rw---- 1 mysql mysql        126 03-18 11:06 mysql-bin.000011
-rw-rw---- 1 mysql mysql        126 03-18 14:03 mysql-bin.000012
-rw-rw---- 1 mysql mysql       2175 03-18 16:48 mysql-bin.000013
-rw-rw---- 1 mysql mysql        107 03-18 23:06 mysql-bin.000014
-rw-rw---- 1 mysql mysql        107 03-19 08:49 mysql-bin.000015
-rw-rw---- 1 mysql mysql    5720758 03-20 10:29 mysql-bin.000016
-rw-rw---- 1 mysql mysql   19741312 03-20 10:55 mysql-bin.000017
-rw-rw---- 1 mysql mysql        323 03-20 10:30 mysql-bin.index
drwx------ 2 mysql mysql       4096 03-18 00:18 performance_schema
drwxr-xr-x 2 mysql root        4096 03-18 15:14 test

注释:发现只有单独的表空间数据文件在增大,mysql的元数据文件不变化。

10、删除分区表中的数据,减少数据文件的大小,清理空间。

mysql> alter table history_text truncate partition p1_201506;

Query OK, 0 rows affected (0.09 sec)

[root@localhost dbmonitor]# ll
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201503.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:34 history_text#P#p1_201504.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201505.ibd
-rw-rw---- 1 mysql mysql 131072 03-20 11:01 history_text#P#p1_201506.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201507.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201508.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201509.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201510.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201511.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201512.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201601.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201602.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201603.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201604.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201605.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201606.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201607.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201608.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201609.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201610.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:21 history_text#P#p1_201611.ibd
-rw-rw---- 1 mysql mysql 131072 03-18 09:35 history_text#P#p1_other_all.ibd