以下是Ubuntu下MariaDB的分区技巧,主要涉及磁盘分区和表分区两类:
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。
sudo apt install gpartedRANGE分区:按连续范围分区(如日期、数值)。
示例:按年份分区日志表
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个分区
ALTER TABLE table_name ADD PARTITION (PARTITION p_new VALUES LESS THAN (value));ALTER TABLE table_name DROP PARTITION p_old;。