MySQL分区是将一个表或索引分解成更小、更可管理的部分,这些部分称为分区。每个分区都是独立的对象,可以独自处理,这可以提高某些查询的性能。分区可以基于范围、列表、哈希或键值。
假设我们有一个名为sales
的表,记录了销售数据,其中有一个sale_date
列。我们想按日期范围进行分区。
<?php
// 数据库连接配置
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';
// 创建数据库连接
$conn = new mysqli($host, $user, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 创建分区表的SQL语句
$sql = "
CREATE TABLE sales (
id INT AUTO_INCREMENT PRIMARY KEY,
sale_date DATE NOT NULL,
amount DECIMAL(10, 2) NOT NULL
)
PARTITION BY RANGE (YEAR(sale_date)) (
PARTITION p0 VALUES LESS THAN (2010),
PARTITION p1 VALUES LESS THAN (2015),
PARTITION p2 VALUES LESS THAN (2020),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
";
// 执行SQL语句
if ($conn->query($sql) === TRUE) {
echo "分区表创建成功";
} else {
echo "分区表创建失败: " . $conn->error;
}
// 关闭数据库连接
$conn->close();
?>
ALTER TABLE
语句。解决方法是了解并遵循分区表的操作规范,或考虑使用在线DDL等工具。领取专属 10元无门槛券
手把手带您无忧上云