随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。
关于数据库的扩展主要包括:业务拆分、主从复制,数据库分库与分表。
(1)业务拆分
假设:Mysql一个数据库中有三张表,shop表,goods表,history表。
随着业务逐渐复杂,数据逐渐增多。数据库的执行效率越来越低。
此时可以将三张表放到三个不同主机上人不同数据库中,这样对一个数据库人压力就分成了三份,系统的吞吐量就会大大提高。
(2)主从复制
MySQL的Replication是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。
MySQL Replication 就是从服务器拉取主服务器上的 二进制日志文件,然后再将日志文件解析成相应的SQL语句在从服务器上重新执行一遍主服务器的操作,通过这种方式来保证数据的一致性。
特点:
-
主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间主从数据不一致的情况。
-
如果主从的网络断开,则从库会在网络恢复正常后,批量进行同步。
-
如果对从库进行修改数据,那么如果此时从库正在在执行主库的bin-log时,则会出现错误而停止同步,所以一般情况下