MySQL-大型分区表与小型分区表

问题描述

让我们说我有一个很大的分区表 TableA ,自2016年以来已有数据。

CREATE TABLE `TABLE_A` (
      `CallId` bigint(17) NOT NULL,`segstart_2` datetime DEFAULT NULL,PRIMARY KEY (`segstart_2`,`CallId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    50100 PARTITION BY RANGE (TO_DAYS(`segstart_2`))
    (PARTITION pmin VALUES LESS THAN (737806) ENGINE = InnoDB,PARTITION p201601 VALUES LESS THAN (737821) ENGINE = InnoDB,.
     .
     .
     .
     PARTITION p202012 VALUES LESS THAN (738140) ENGINE = InnoDB);

另一方面,我有一个 TableB ,该DDL具有自2019年以来的数据,因此B是较小的表。


CREATE TABLE `TABLE_B` (
  `CallId` bigint(17) NOT NULL,`CallId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
50100 PARTITION BY RANGE (TO_DAYS(`segstart_2`))
(PARTITION pmin VALUES LESS THAN (737806) ENGINE = InnoDB,PARTITION p202001 VALUES LESS THAN (737821) ENGINE = InnoDB,.
 PARTITION p202012 VALUES LESS THAN (738140) ENGINE = InnoDB);

现在,如果我运行以下查询

select * from Table_A where segstart > '2020-05-01' AND segstart < '2020-05-31';
select * from Table_B where segstart > '2020-05-01' AND segstart < '2020-05-31';

我仅查询2020年5月的两个表。 TableB 查询会更快,因为它的数据量较小,或者两者的速度都相同,因为2020年5月,数据将被均等地划分。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...