MySQL InnoDB分表是一种数据库优化技术,用于处理大规模数据和高并发访问的情况。通过将一个大表拆分成多个小表,可以提高查询性能、减少锁竞争,并提升数据库的整体性能。
以下是一个简单的水平分表示例,使用哈希算法将数据分散到多个表中:
-- 创建主表
CREATE TABLE `user` (
`id` INT PRIMARY KEY,
`name` VARCHAR(255),
`email` VARCHAR(255)
);
-- 创建分表
CREATE TABLE `user_0` LIKE `user`;
CREATE TABLE `user_1` LIKE `user`;
CREATE TABLE `user_2` LIKE `user`;
-- 插入数据时根据ID进行哈希分片
DELIMITER $$
CREATE TRIGGER `trg_before_user_insert`
BEFORE INSERT ON `user`
FOR EACH ROW
BEGIN
DECLARE table_name VARCHAR(255);
SET table_name = CONCAT('user_', MOD(NEW.id, 3));
SET NEW.table_name = table_name;
END$$
DELIMITER ;
-- 修改插入语句
INSERT INTO `user` (id, name, email) VALUES (1, 'Alice', 'alice@example.com');
请注意,以上示例代码和参考链接仅供参考,实际应用中需要根据具体需求进行设计和优化。
领取专属 10元无门槛券
手把手带您无忧上云