首页 >

mysql横向和纵向分库 |spring mysql 集群

mysql井号转义,mysql增加字段备注,mysql的标准语言,mysql查询死锁的次数,安装mysql无法startup,spring mysql 集群mysql横向和纵向分库 |spring mysql 集群

横向分库

横向分库是将数据行按照某种规则分布到多个数据库中。比如,可以按照用户ID的哈希值,将用户数据均匀地散布在多个数据库中。这种方式的优势在于可以平衡每个数据库的负载,提高数据库的读写性能和可靠性。

CREATE TABLE users (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password CHAR(32) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
KEY (username),
KEY (email)
) ENGINE=InnoDB;
CREATE TABLE users_1 (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password CHAR(32) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
KEY (username),
KEY (email)
) ENGINE=InnoDB;
CREATE TABLE users_2 (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password CHAR(32) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
KEY (username),
KEY (email)
) ENGINE=InnoDB;
…

在这种情况下,用户表根据哈希值被均匀地分布在多个数据库中,每个数据库只存储部分数据行。

纵向分库

纵向分库是将数据表按照某种规则分成多个表,通常是将一张表中的数据按照列的不同部分存储在不同的表中。比如,可以将users表的敏感数据,例如用户密码和电子邮件地址,存储在一个表中,而将不敏感的数据,例如用户名,存储在另一个表中。

CREATE TABLE users (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
KEY (username)
) ENGINE=InnoDB;
CREATE TABLE users_sensitive_data (
user_id INT(11) UNSIGNED NOT NULL,
password CHAR(32) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (user_id),
FOREIGN KEY (user_id) REFERENCES users(id)
) ENGINE=InnoDB;
…

在这个例子中,users表和users_sensitive_data表共同存储用户数据,但是敏感数据被存储在另外一个表中,与不敏感数据分离开来。

总之,横向和纵向分库都不是复杂的操作,但是使用这些技术,需要良好的数据模型设计和合理的规则选择。这些技术可以帮助维护大型数据量的数据库,并使其更加可靠,高效和扩展性。


mysql横向和纵向分库 |spring mysql 集群
  • 为什么MySQL服务重启失败?看看这些解决方法 |自己用mysql下载哪个版本
  • 为什么MySQL服务重启失败?看看这些解决方法 |自己用mysql下载哪个版本 | 为什么MySQL服务重启失败?看看这些解决方法 |自己用mysql下载哪个版本 ...

    mysql横向和纵向分库 |spring mysql 集群
  • MySQL实验事务与存储过程(详细理解MySQL数据库事务与存储过程) |mysql中排名结果
  • MySQL实验事务与存储过程(详细理解MySQL数据库事务与存储过程) |mysql中排名结果 | MySQL实验事务与存储过程(详细理解MySQL数据库事务与存储过程) |mysql中排名结果 ...

    mysql横向和纵向分库 |spring mysql 集群
  • mysql用户多主机名如何影响你的职场发展? |mysql能截取字符串吗
  • mysql用户多主机名如何影响你的职场发展? |mysql能截取字符串吗 | mysql用户多主机名如何影响你的职场发展? |mysql能截取字符串吗 ...