Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 同时按列表和范围分区-多个分区_Mysql_Database Design_Partitioning_Database Partitioning - Fatal编程技术网

Mysql 同时按列表和范围分区-多个分区

Mysql 同时按列表和范围分区-多个分区,mysql,database-design,partitioning,database-partitioning,Mysql,Database Design,Partitioning,Database Partitioning,在MySQL中,可以同时使用列表分区和范围分区吗。 比方说 我有不同的类别,我想把每个类别放在“列表分区”中 现在每个类别我都想创建“范围分区”,因为每个类别每天都有大量的数据 此外,我不想为每个类别创建单独的物理表 示例查询 Select * FROM table1 WHERE category_id = 1 AND dt BETWEEN 'start_date' AND 'end_date' 如果我们有上千个类别,每天都有上百万个类别的记录。如果我们每月在类别上进行多个分区(假设如果需要,

在MySQL中,可以同时使用列表分区和范围分区吗。 比方说

  • 我有不同的类别,我想把每个类别放在“列表分区”中
  • 现在每个类别我都想创建“范围分区”,因为每个类别每天都有大量的数据
  • 此外,我不想为每个类别创建单独的物理表

    示例查询

    Select * FROM table1 WHERE category_id = 1 AND dt BETWEEN 'start_date' AND 'end_date'
    

    如果我们有上千个类别,每天都有上百万个类别的记录。如果我们每月在类别上进行多个分区(假设如果需要,可以每周进行一次)根据每个类别,然后我们可以获得很大的好处,因为在datetime范围内获取特定类别及其数据,我们只在该分区中查找,比在一个包含每个类别十亿行的分区中查找要好得多“子分区”


    其他DBMS也支持子分区

    我还没有看到
    子分区的用途
    。仅仅因为有“巨大”的数据量并不意味着任何类型的分区都会有帮助。请提供
    显示创建表
    (即使没有分区),一些查询,并解释为什么您认为分区是一个好主意。并详细说明为什么您不能规范化。保持表“更小”很重要。但不要规范化“连续”“值,例如日期或浮动。@如果你有上千个类别,并且每天每个类别都有上百万条记录,那么你可以使用这些值。如果您每月在category plus上进行子分区(只需假设如果需要,可以每周进行一次)根据每个类别编写查询,然后根据分区编写查询,这样我们就可以获得很大的好处,因为在datetime范围内获取特定类别及其数据时,我们只在该分区中查找,比只使用单个范围分区更好range@RickJames编辑了规范化部分的问题,因为我已经规范化了表谢谢你指出这一点。Gracious@RickJames读你的文章写得很好,但为什么你说子分区是无用的。请详细说明,不胜感激