关于数据库应用的一些思考
数字化转型给企业带来了无穷尽的数据,在数据为王的期间,数据就是金钱。而数据库,顾名思义就是数据的仓库。数据怎么存,怎么取、如何让数据高效的流动,怎么保证数据安全等等,这些都是数据库要解决的问题。也可以说,因为有这么多数据要存取,所以才需要数据库。但想要在存储、查询、安全等各方面做到极致是不可能,而且在市场上,差别类型,差别规模的公司对数据库的需求也不一样,所以市场上才会出现各种数据库。
2020年中国的数据库的市场格局以关系型数据库为主流,市场份额在90%左右。关系型数据库最重要的特性是ACID,既
原子性(Atomicity):数据库的操作要么全部实行,要么全部回滚。
一致性(Consistency):每个事件操作看到的数据是保持一致的。
隔离性(Isolation):多个事件并发访问时,事件之间是隔离的,互不干扰。
长期性(Durability):为了防止意外变乱,如断电导致数据缺失,数据库保证事件对所做的修改永久生存,不会被回滚。
关系型数据库长期排名前三的是Oracle、MySQL、SqlServer。总体来说关系型数据库的优点是安全、容易明白,使用方便。
但关系型数据的缺点也很显着:读写性能差、并发能力不强、不易于横向扩展。而随着大型互联网业务兴起,NoSQL数据库开始盛行。
非关系型数据库(NoSQL)的特点是,速率快、效率高,可以轻松维护海量的数据和处理,可以实现数据的分布式摆设,支持高并发。所以现在很多企业都是关系型数据库与非关系型数据库一起使用。当然关系型数据也在积极改进,想办法在自身系统加强海量数据并行处理的能力。好比TiDB,一个中国团队做的,它融合了关系型数据库和NoSQL。还有CockroachDB兼容了PostgreSQL。
NoSQL目前有四种数据库类型:键值(Key-Value)数据库,如Redis;面向文档(Document-Oriented)数据库,如MongoDB;列存储(Wide Column Store/Column-Family)数据库,如Cassandra;图(Graph-Oriented)数据库,如Neo4J。
差别类型的数据库是解决差别场景的问题。好比Redis,常常用来做缓存。存储用户不常变动,但又请求十分频仍的数据。好比淘宝的首页,我们需要根据用户id,查询对应推荐商品配置信息。这种根据key-value查询出来的数据结构,就非常适用于redis。
MongoDB适用那些内嵌数组形式存储的数据。好比订单物流信息,这一次查询就能将订单全部的变动读取出来。再好比,朋友圈的信息流。
其实从上面两个例子也可以看出,现在NoSQL数据库更多是在业务上起到缓存的作用,这样方便前端高并发的访问。好比淘宝的首页,表现的商品数据是从NoSQL数据库里查出来的,然后每隔一段时间从关系型数据库里同步新的缓存,这样就减少了关系型数据库的访问压力。
末了,我们可以预见的是,多个数据库组合使用会成为常态,企业需要针对特定业务场景选择差别的数据库,在使用的过程中,会总结出更多履历教训,这些都是企业需要持续关注的。
页:
[1]