2016 - 2024

感恩一路有你

为什么要对mysql加缓存 mysql和postgresql的区别?

浏览量:4385 时间:2023-09-16 18:46:29 作者:采采

mysql和postgresql的区别?

1架构对比

MySQL:多线程

PostgreSQL:多进程

多线程架构和多进程架构之间没有可以说的好坏,.例如oracle在unix上是多进程架构,在windows上是多线程架构。

PG的有多种集群架构可以选择,plproxy可以支持语句级的镜像或分片,slony也可以通过字段级的不同步的设置,standby是可以形成完整WAL文件级或流式的读写分离集群,同步频率和集群策略根据情况更方便,操作的很简单点。

pgsql相对于numa架构的支持比mysql强不少,比MYSQL对此读的性能更好一些,pgsql并提交可以全部异步,而mysql的内存表太差功能强大(因为表锁的原因)

2对存储过程及事务的支持能力

1)MySQL对于无事务的MyISAM表,按结构表锁定后,一个长时间运行的查询很肯定会长时间地阻挡对表的更新,而PostgreSQL不存在这样的问题。

2)PostgreSQL支持什么存储过程,要比MySQL好,拥有本地缓存执行计划的能力;

3)MySQL4.0.2-alpha正在支持什么事务的概念,恢复无事务的表类型,为用户能提供了更多的选择。

3稳定性及性能

1)高并发读写,负载靠近了极限下,PG的性能指标仍这个可以保护双曲线甚至还对数曲线,到顶峰之后不再会下降,而MySQL明显直接出现一个波峰后迅速下滑(5.5版本之后,在企业级版本中有个插件可以会改善很多,但是不需要付费)

2)PostgreSQL的稳定性极强,Innodb等引擎在崩溃、突然断电之类的灾难场景下抗打击能力有了长足进展,但他很多MySQL用户都遇到过Serve的数据库丢失的的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要强一点。

3)mysql的innodb引擎,是可以一定360优化依靠系统所有内存,超大内存下PG对内存在用的不这样一定(要参照内存情况合理配置)。从测试结果上看,mysql5.5的性能提升很大,单机性能强于pgsql,5.6肯定会强更大。

什么时间redis?

●不需要实时更新但是又极其会消耗数据库的数据。诸如网站上商品销售排行榜,这种数据一天统计一次就可以了,用户绝对不会了解其如何确定是实时地的。

●需要实时更新,只不过更新频率不高的数据。例如一个用户的订单列表,他肯定希望能够实时看到自己下的订单,可是大部分用户应该不会正常提交订单。

●在某个时刻访问量颇大但是可以更新也很正常的数据。这种数据有一个很是是的例子就是能秒杀,在一招秒那一刻,很可能有N倍于平时的流量冲进来,系统压力会很大。但这种数据建议使用的缓存没法和大多数缓存一样,这种缓存必须能保证不全部丢失,不然会有大问题。

就像地,Redis是可以用来以及MySQL的缓存层。为什么MySQL最好有缓存层呢?想象帮一下忙这样的场景:在一个多人大侠帮帮忙的游戏里,排行榜、好友关系、队列等真接关系数据的情景下,要是再和MySQL那面交手,大量的数据请求肯定会对MySQL疲累不堪,哪怕长期过量的请求将会击穿数据库,可能导致整个数据服务掉线,数据库性能的瓶颈将制肘业务的开发;那么如果不是按照Redis来做数据缓存,将大吓减小可以查询数据的压力。在这种架子里,当我们在业务层有数据查询需求时,先到Redis缓存中网上查询,假如查不到,再到MySQL数据库中可以查询,同样将查到的数据可以更新到Redis里;当我们在业务层有如何修改直接插入数据需求时,真接向MySQL发起攻击帮忙,同时自动更新Redis缓存。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。