关于传统数据库性能问题

143 阅读2分钟

**关于传统数据库性能问题 **

这里传统数据库指的是大家熟悉的SQL SERVER、ORACLE、MYSQL、DB2等传统的关系型数据库。其性能表现遵守下面几条原则: 第一:传统数据库由于严格遵守ACID属性,通俗理解为追求‘数据严格精确’,因此其横向扩展性(即用多机分布式来提高整个系统的并发性和数据量)是比较差的,或者说是有‘最大限度’的,即有‘天花板’的,不能像当前热门的NoSQL类型的数据库那样轻松实现横向扩展(几十、几百、甚至成千上万台服务器构成的分布式系统)。这是由传统数据库的本质特征决定的,即所谓的‘有得必有失’。 第二:由于受上面第一特点束缚,因此当并发量或者数据量超大时候,唯一的办法就是根据业务类型来分库,让不同的业务各自以独立的数据库系统在独立的物理数据库服务器上运行。 第三:通过提升硬件档次和软件优化来提升数据库系统的性能。 第四:采用DBTWIN集群负载均衡来提升数据库系统的整体性能表现。由于DBTWIN负载均衡针对的是查询操作,其建立在数据实时同步一致的基础之上,因此系统的硬件档次对整个集群的性能影响就甚为关键,尤其是网络硬件档次,百兆、千兆、万兆网络对数据同步的影响差别很大,甚至速度远大于万兆以太网的高速网络,对于追求高性能、高并发的系统来说是必须的配置(网络速度越快,DML操作的性能越接近于单节点性能,这样整个DBTWIN集群对性能的提升就越明显)。 第五:采用SQL自带的复制、镜像、ALWAYSON等异步数据传输的方式来实现OLTP和OLAP的分离。由于这种方式下的主副节点之间存在数据的时间差,因此需要结合代码进行手工处理,而且管理维护复杂,又存在数据逻辑错误的隐患,因此不具有通用性。