温馨提示×

Ubuntu MariaDB分区技巧有哪些

小樊
46
2025-09-12 22:12:29
栏目: 云计算

以下是Ubuntu下MariaDB的分区技巧,主要涉及磁盘分区和表分区两类:

一、磁盘分区(物理分区)

1. 命令行工具

  • fdisk
    适用于MBR分区表,适合小容量磁盘(<2TB)。
    操作步骤:

    sudo fdisk /dev/sda  # 选择磁盘
    n 创建新分区,选择主分区/扩展分区
    输入分区大小(如+10G)
    w 保存并退出
    

    格式化分区:sudo mkfs.ext4 /dev/sdaX(X为分区号)。

  • parted
    支持GPT分区表,适合大容量磁盘(>2TB)。
    操作步骤:

    sudo parted /dev/sda
    mklabel gpt  # 创建GPT分区表
    mkpart primary ext4 1MiB 100GiB  # 创建分区
    quit
    

    格式化分区:sudo mkfs.ext4 /dev/sdaX

2. 图形界面工具

  • GParted
    安装:sudo apt install gparted
    操作:选择磁盘→右键未分配空间→“新建”设置分区和文件系统→“应用”。

二、MariaDB表分区(逻辑分区)

1. 分区类型与适用场景

  • RANGE分区:按连续范围分区(如日期、数值)。
    示例:按年份分区日志表

    CREATE TABLE logs (
        id INT,
        log_date DATE
    ) PARTITION BY RANGE (YEAR(log_date)) (
        PARTITION p2020 VALUES LESS THAN (2021),
        PARTITION p2021 VALUES LESS THAN (2022),
        PARTITION p_max VALUES LESS THAN MAXVALUE
    );
    
  • LIST分区:按离散值列表分区(如地区、状态)。
    示例:按用户类型分区

    CREATE TABLE users (
        id INT,
        user_type VARCHAR(10)
    ) PARTITION BY LIST (user_type) (
        PARTITION p_admin VALUES IN ('admin'),
        PARTITION p_user VALUES IN ('user'),
        PARTITION p_guest VALUES IN ('guest')
    );
    
  • HASH/KEY分区:按哈希值均匀分布数据,适合负载均衡。
    示例:按用户ID哈希分区

    CREATE TABLE orders (
        id INT,
        user_id INT
    ) PARTITION BY HASH(user_id) PARTITIONS 4;  # 分为4个分区
    

2. 分区操作技巧

  • 组合分区:可叠加RANGE和LIST等分区,如先按年份RANGE分区,再按地区LIST分区。
  • 分区维护
    • 添加分区:ALTER TABLE table_name ADD PARTITION (PARTITION p_new VALUES LESS THAN (value));
    • 删除分区:ALTER TABLE table_name DROP PARTITION p_old;
  • 性能优化
    • 高频查询字段作为分区键(如日期、ID)。
    • 大表可按时间范围分区,便于归档和清理旧数据。

三、注意事项

  • 操作前备份数据,避免误操作丢失数据。
  • 确保分区键选择合理,避免数据分布不均。
  • MariaDB 10.2+版本支持更多分区功能,建议升级到较新版本。

0