首页 新闻 搜索 专区 学院

mysql新增一个分区表后,分区信息里边少了一条数据,求解。。。

0
悬赏园豆:5 [待解决问题]

1. 创建一个表t_part,同时为该表创建两个分区p0,p1。

CREATE TABLE t_part(
    id INT
) ENGINE INNODB
 PARTITION BY RANGE(id)(
    PARTITION p0 VALUES LESS THAN(10),
  PARTITION p1 VALUES LESS THAN(20)
);

2. 为该表添加3条数据。

INSERT INTO t_part SELECT 9;
INSERT INTO t_part SELECT 10;
INSERT INTO t_part SELECT 15;

3. 添加好之后,分区表中p0存储1条数据:id=9,p1存储2条数据:id=10,id=15。

查看分区表情况:

SELECT a.TABLE_ROWS, a.* FROM information_schema.PARTITIONS a
WHERE a.TABLE_SCHEMA=database() AND a.TABLE_NAME='t_part';

结果正确,如图:

4.给t_part追加一个分区p2,存储id大于20的数据。

ALTER TABLE t_part ADD PARTITION( PARTITION p2 VALUES LESS THAN MAXVALUE).

然后查看分区表情况:

SELECT a.TABLE_ROWS, a.* FROM information_schema.PARTITIONS a
WHERE a.TABLE_SCHEMA=database() AND a.TABLE_NAME='t_part';

结果如图:少了一条数据

不知道p0为什么会少id=9这一条数据?有无大神解释下

小小洪的主页 小小洪 | 初学一级 | 园豆:163
提问于:2018-08-11 11:11
< >
分享
所有回答(1)
0

数据并没有少,你可以执行一下 select * from t_part partition (p0);
更新统计信息 analyze table t_part;

AYard | 园豆:436 (菜鸟二级) | 2018-09-06 12:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册