色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql橫縱向分表

錢淋西2年前11瀏覽0評論

MySQL是一種使用廣泛的關系型數據庫,橫縱向分表是優化數據庫的一種方式。

橫向分表是將一張表水平切分成多個表,每個表只保存一部分數據。這種方式適用于數據量非常大并且數據表結構相對固定的情況。例如,我們可以將用戶表按照城市或者地區進行切分,每個表只保存特定地區或城市的用戶數據。

CREATE TABLE `user_shanghai` (
`id` INT(11) AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`phone` VARCHAR(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `user_beijing` (
`id` INT(11) AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`phone` VARCHAR(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

縱向分表是將一張表垂直切分成多個表,每個表只保存一部分字段,每個表的主鍵都引用同一張表的主鍵。這種方式適用于一張表的字段非常多,但有些字段很少使用,并且表的行數不是很大的情況。例如,我們可以將用戶表的基本信息字段和聯系方式字段劃分到兩張表中,每張表只保存對應的字段數據。

CREATE TABLE `user_info` (
`id` INT(11) AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `user_contact` (
`id` INT(11) AUTO_INCREMENT PRIMARY KEY,
`user_id` INT(11) NOT NULL,
`phone` VARCHAR(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `user_contact` ADD CONSTRAINT `fk_user_contact_user` FOREIGN KEY (`user_id`) REFERENCES `user_info`(`id`);

橫縱向分表可以結合使用,根據實際情況進行選擇和使用。