发布者:上海IT外包来源:http://www.lanmon.net点击数:1200
蓝盟IT小贴士,来喽!
第2阶段使用高速缓存
如果优化sql不能解决问题,请考虑生成缓存。 结果,使用高速缓存的目的是高速缓存复杂、耗时、不变的执行结果,减少数据库资源消耗。
这里要注意的是,在构建:高速缓存后,系统的复杂性增加了。 需要考虑很多问题,如:
高速缓存和数据库完整性问题(例如,增加高速缓存还是删除高速缓存)
缓存破坏、缓存穿透、缓存雪崩问题如何解决? 是否需要高速缓存预热。 但我认为大多数中小企业都没有考虑。

第三阶段读写分离
如果不能高速缓存,则进行主从复制,分离读写。 在应用层,区分读写要求。 或者利用现有的中间件mycat和altas等来分离读写。
需要注意的是,如果说使用主从框架的话,有三个问题,必须要准备
1 .主从的优点
:回答了实现数据库备份,实现数据库负载平衡,提高数据库可用性
2 .主从原理
主库具有log dump线程,并将binlog传递给从属库
从库中读取从主库传递I/O线程、SQL线程和I/O线程的binlog内容,写入relalog,SQL线程从relalog读取内容,并从库写入数据库。
3 .如何解决主从的连贯性?
回答问题:不建议在数据库级别解决此问题。 根据CAP定理,主从架构本来就是高可用性架构,不能满足一致性。
使用同步复制模式或半同步复制模式是弱一致性,而不是强一致性。 因此,我们建议利用缓存来解决这个问题。
步骤为:
自己通过测试,计算了主从延迟时间,提出了mysql版本为5.7以上。 mysql从5.7开始,因此多线程复制功能相对完整,一般可以确保延迟在1s以内。 尽管如此,mysql现在出现在8.x中。 另外,有人使用5.x版本吗?
数据库写入操作首先写入数据库,然后写入cache,但有效期短,比主从等待时间稍长。
对于读请求,首先读取缓存,如果存在缓存,则直接返回。 如果缓存不存在(此时主服务器和从服务器同步完成),则重新装入数据库。
分享到: