让我们以博客引擎为例.
你有博客,博客有帖子,帖子有标签用于组织目的.在确定RDBMS环境中的标记问题并不简单之后,我们会去谷歌寻求指导,并找到以下关于解决方案的简洁摘要:设计和相关基准.但是,所有这些都是以性能或复杂性为代价的.看起来像NoSQL一样让你在列中存储标签列表(在NoSQL中我们可以将文档存储在文档中)可以很好地解决问题.为什么不用SQLServer/Qracle/MySQL/Postgres /等.那么呢?
起初我以为可能是因为尺寸不一.但任何值得注意的RDBMS都允许使用某种形式的varchar和text(大小相当).因此,列的大小(以及不同行中的相同列具有不同大小的事实不是问题).因此,不要存储blob文本,而是让我们在列中存储相同类型的项目列表(大多数语言中的数组).让我们为有效的精确搜索匹配编制索引.至少对于我需要NoSQL DB的所有用例都会在必要时消失(我知道很多人都在讨论可扩展性,但我不太了解/关心它,我没有可伸缩性问题,我有维护噩梦).我们的架构设计简单(每一点都像NoSQL文档中的文档一样干净简单),并且由于高效的索引而具有出色的性能.更奇怪的是,开源数据库(例如Postgres)没有针对此功能的某种补丁.如今,在这些领域充满动力的开发人员似乎很想从头开始创建新的数据库.
我是否遗漏了一些令人震惊的技术障碍,或者前面提到的RDBMS供应商是懒惰还是过去?