mysql> status
--------------
mysql Ver 14.14 Distrib 5.6.17, for Win64 (x86_64)
Connection id: 4
Current database:
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.6.17-log MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 37 min 55 sec
Threads: 2 Questions: 35 Slow queries: 2 Opens: 294 Flush tables: 1
Open tables: 286 Queries per second avg: 0.015
--------------
mysql> select version();
+------------+
| version() |
+------------+
| 5.6.17-log |
+------------+
1 row in set (0.07 sec)
mysql> show variables like 'have_partitioning';
Empty set (0.00 sec)
mysql> show variables like 'have_part%';
Empty set (0.00 sec)
MySQL5.5.19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.19 |
+-----------+
1 row in set (0.00 sec)
mysql> show variables like 'have_part%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| have_partitioning | YES |
+-------------------+-------+
1 row in set (0.00 sec)
同样可以查询INFORMATION_SCHEMA.PLUGINS表来验证是否支持分区。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql> SELECT PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_STATUS
FROM information_schema.PLUGINS WHERE PLUGIN_TYPE = 'STORAGE ENGINE';
+--------------------+----------------+---------------+
| PLUGIN_NAME | PLUGIN_VERSION | PLUGIN_STATUS |
+--------------------+----------------+---------------+
| binlog | 1.0 | ACTIVE |
| CSV | 1.0 | ACTIVE |
| MEMORY | 1.0 | ACTIVE |
| MyISAM | 1.0 | ACTIVE |
| MRG_MYISAM | 1.0 | ACTIVE |
| ARCHIVE | 3.0 | ACTIVE |
| BLACKHOLE | 1.0 | ACTIVE |
| FEDERATED | 1.0 | DISABLED |
| InnoDB | 5.6 | ACTIVE |
| PERFORMANCE_SCHEMA | 0.1 | ACTIVE |
| partition | 1.0 | ACTIVE |
+--------------------+----------------+---------------+
11 rows in set (0.03 sec)
CREATE TABLE t_employees_range_part_001 (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN (21)
);
--001:createtime timestamp
-- ERROR 1486 (HY000): Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
-- 说明:分区函数不允许为常量、随机数或者与时区相关联的表达式,如RANGE(1970)、RANGE(rand())
-- 002:`id` int(11) PRIMARY KEY AUTO_INCREMENT
-- ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function
-- 说明:这里先把id的主键属性(PRIMARY KEY AUTO_INCREMENT)给去掉,后面“Partitioning Keys, Primary Keys, and Unique Keys”部分再分析