1.基本原理
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
2.读写分离的原因
因为数据库的“写”(写10000条数据到oracle可能要3分钟)操作是比较耗时的。
但是数据库的“读”(从oracle读10000条数据可能只要5秒钟)。
所以读写分离,解决的是,数据库的写入,影响了查询的效率。
3.什么时候要读写分离?
数据库不一定要读写分离,如果程序使用数据库较多时,而更新少,查询多的情况下会考虑使用,利用数据库 主从同步 。可以减少数据库压力,提高性能。当然,数据库也有其它优化方案。memcache 或是 表折分,或是搜索引擎。都是解决方法
4.主从复制和读写分离
通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。
5.数据库的其他优化方案
1.表拆分
垂直拆分和水平拆分
垂直拆分
垂直拆分是指数据列的拆分,把一张列比较多的表拆分为多张表,然后查询的时候用join关联起来即可。
拆分原则:
1.把不常用的字段单独放在一张表;
2.把text,blob等大字段拆分出来放在附件表中;
3.经常组合查询的列放在一张表中
image.png
水平拆分
水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张表的数据拆成多张表来存放。进行水平拆分后的表,字段的列和类型和原表应该是相同的,但是要记得去掉auto_increment自增长。
image.png
网友评论