教程 mariadb tutorial

分区表类型

1. 什么是分区表

分区表是将大表的数据按某种规则划分成多个更小、更易管理的部分(分区),每个分区独立存储,查询时只访问相关分区,提高性能。

2. 常见分区类型

  • RANGE 分区
    根据列值范围划分,如按日期范围分区。

  • LIST 分区
    根据列值列表划分,适合少量离散值。

  • HASH 分区
    根据列的哈希值分区,实现数据均匀分布。

  • KEY 分区
    类似 HASH,但使用 MariaDB 内置函数生成分区。

3. 创建分区表示例

RANGE 分区示例

sql
CREATE TABLE orders (
  id INT,
  order_date DATE
)
PARTITION BY RANGE (YEAR(order_date)) (
  PARTITION p2019 VALUES LESS THAN (2020),
  PARTITION p2020 VALUES LESS THAN (2021),
  PARTITION pmax VALUES LESS THAN MAXVALUE
);

`

LIST 分区示例

sql
CREATE TABLE users (
  id INT,
  country VARCHAR(50)
)
PARTITION BY LIST COLUMNS(country) (
  PARTITION p_us VALUES IN ('USA', 'Canada'),
  PARTITION p_eu VALUES IN ('France', 'Germany'),
  PARTITION p_other VALUES IN (DEFAULT)
);

4. 注意事项

  • 分区列必须是主键的一部分或有索引。
  • 分区表不支持外键约束。
  • 适合海量数据和按时间、地域等字段频繁查询的场景。

分区表类型让 MariaDB 能够更有效地管理和查询大规模数据,提升数据库性能和维护便捷性。