分表(Sharding)是一种数据库优化技术,用于将一个大型数据库表拆分成多个较小的表,以提高查询性能、减少单表数据量、提升并发处理能力。在PHP和MySQL中,分表通常通过水平分割(Horizontal Partitioning)实现,即将表中的行按照某种规则分布到不同的物理表中。
以下是一个基于范围的分表示例:
<?php
// 数据库连接
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
// 分表函数
function getTable($id) {
return 'table_' . ($id % 10);
}
// 插入数据
$id = 123;
$table = getTable($id);
$sql = "INSERT INTO $table (id, name) VALUES ($id, 'John Doe')";
if ($mysqli->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $mysqli->error;
}
// 查询数据
$table = getTable($id);
$sql = "SELECT * FROM $table WHERE id = $id";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 results";
}
$mysqli->close();
?>
通过以上方法,可以有效解决PHP和MySQL分表过程中遇到的问题,并提升系统的性能和扩展性。
云+社区技术沙龙[第13期]
云+社区沙龙online[数据工匠]
高校公开课
云+未来峰会
DBTalk技术分享会
云+社区技术沙龙[第17期]
TVP技术夜未眠
腾讯云数智驱动中小企业转型升级系列活动
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云