
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员能够掌握和应用的数据库类型也在不断的增加,而本文我们就通过案例分析来简单了解一下,NoSQL数据库都有哪些限制情况。
NoSQL数据库的扩展性确实比Oracle数据库、DB2或SQLServer(它们都基于40年前的一种设计)好得多。然而,每种NoSQL数据库都存在新的限制:
(1)键值存储·
没有比db.get(键)更简单的查询了。然而,世界上许多数据和使用场景无法以这种方式来设计结构。此外,我们其实在谈论缓存策略。在任何数据库中,主键查询速度很快。重要的只是内存中的数据。在理想情况下,它们像哈希图一样扩展。然而,如果要跑30趟数据库才能将数据放回去或进行任何类型的复杂查询,这行不通。这些系统现在更常作为缓存实施在其他数据库的前面。
(2)文档数据库·
这种数据库之所以流行起来,是由于它们使用JSON,对象又易于序列化成JSON。这种数据库的一个版本没有连接,将整个“实体”放到一个庞大的文档中有其自身的缺点。没有事务保证,你还会遇到数据完整性问题。今天,一些文档数据库支持一种不太可靠的事务,但它不是大多数人习惯的同一种保护级别。而且,即使对简单查询而言,这种数据库在延迟方面常常速度很慢,尽管它们就吞吐量而言扩展性更好。
(3)列存储·
这种数据库的查询速度与键值存储一样快,它们可以存储更复杂的数据结构。然而,如果执行像跨3个表(RDBMS术语)或3个集合(MongoDB术语)连接这样的操作,会让人痛苦不堪。这种数据库确实适合时间序列数据(请给我在下午1点至2点出现的所有事务)。
还有其他更深奥的NoSQL数据库。然而,所有这些数据库的共同点是不支持通用数据库惯用语,而且往往专注于“特殊用途”。一些流行的NoSQL数据库(比如MongoDB)编写了出色的数据库前端和生态系统工具,因而开发人员很容易采用它们,但存储引擎存在严重的限制,更不用说弹性和可扩展性方面的限制了。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。