数据库的存在让我们无论是在制定营销计划还是获取新用户等目标上有一个更好的结果,下面我们就一起来了解一下,数据化的服务器都有哪些特点。
强调互联网,这是因为本文所讨论的前提是互联网应用。与“传统”应用不同,互联网中的应用每天面临的是海量的数据、大量的请求以及对系统可靠性和响应速度有着更高的要求。“传统”应用,我姑且浅显地认为是,数据量不大,面对的用户群范围相对较小,自然大量的高并发请求场景几乎不存在。
在上文对互联网应用和传统应用有了一个大概的认识后,接下来我们来谈一谈,本文的主题关系型数据库在两种类型应用的不同使用方式,以及关系型数据在如今的互联网应用中是否不再是关注的焦点。
海量的数据。百万级甚至千万级亿级的数据已不可能存储在单一的数据表中,甚至不可能存储在一个数据库中。试想如果将所有的数据存储在单库单表中,一旦发生全表扫描,这对于系统响应速度来讲将是一个灾难。然而在传统应用中,可能单库单表已经足以适用。
二,由于产生了海量数据,进而数据在磁盘上的存储被设计成了“分库分表”的模式,利用某种特定的“路由”算法,定位一个数据所处的位置。正是因为“分库分表”的设计,使得关系型数据中的“联表查询”场景失效,所以在互联网应用中,一张表的设计已经几乎不再有“外键”,也就是联表查询几乎已消失。
三,大量的请求。这在互联网应用中比较常见,一起突发事件,一个明星的突发新闻,都会造成大量的请求瞬时到达。数据库的承载能力是有限的,一旦所有的访问量在某一时刻同时涌入,这直接会造成数据库宕机,整个系统甚至会因为数据库的原因造成服务不可用。所以在如今的互联网应用中,对数据的读取写入几乎已经不再直接操作数据库,而是在数据库前加入了一道“安全”屏障——缓存。
四,服务的可靠性。服务的可靠性,即使系统出现问题,也要保证部分可用,读写分离是一个很好的解决方案,读取和写入操作不再同一个数据库中进行,而是将他们分开。如果此时有大量写操作,要尽量不影响读操作,或者如果如果在写入数据库时造成数据库宕机,此时要尽量不能影响数据库的读操作。此时在互联网应用常就会部署一套“主从”数据库,主库写,从库读,这就会衍生出数据同步的问题,或者归纳为数据一致性问题。
可以看到,互联网应用与传统应用的异同点在于,互联网应用对于数据库的着重点在于从整体上进行把握,对数据的操作相对来说比较“粗糙”。而传统应用由于其自身原因,只需要考虑更为“精细化”的操作,例如连表查询,表与表的关系,关系表还是实体表等等。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。