mysql的读写分离和主从复制的区别在哪里

mysql的读写分离和主从复制的区别在哪里,第1张

读写分离的意思是,写入的时候向 a 服务器写入,而读出的时候从 b c d 甚至更多的服务器读出;这样的架构适合于读多写少的应用,最典型的就是火车购票系统,一般我们买票的时候要先查询好多次,包括车次啊,时间啊,这都是读 *** 作,而最后可能只买一张车票,这是写 *** 作;做了读写分离之后,可以将资源分配到最合理的地方,不会使某些资源闲置,而另一些资源不够用;

但是读写分离必然引发主从复制,试想一共有 10 张票,买了 1 张票,读的时候如果还是读到 10 张余票就不对了,因此需要主从复制,再读的时候,就只能读到 9 张余票了;

利用mysql proxy来实现的。

MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。

你创建一个存储过程C

先执行存储过程A,并得到返回值

再判断返回值执行存储过程B

例如:

mysql>\d //

mysql> create procedure test(v_name char(20),out v_id int)

-> BEGIN

->SELECT id into v_id from t1 WHERE name=v_name

->END

->//

mysql> create procedure test1(v_id int,out v_name char(20))

->BEGIN

->SELECT name into v_name from t2 where id=v_id

->END

->//

mysql>create procedure test2(inout v_name char(20))

->BEGIN

->DECLARE v_id int

->CALL test(v_name,v_id)

->CALL test1(v_id,v_name)

->END

->//

mysql>set @aa='xx‘//

Query OK, 0 rows affected (0.00 sec)

mysql>call test2(@aa) //

Query OK, 0 rows affected (0.01 sec)

mysql>select @aa//

+------+

| @aa |

+------+

| x2 |

+------+

1 row in set (0.00 sec)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9901848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存