Mysql 多标签搜索的最佳数据库系统

Mysql 多标签搜索的最佳数据库系统,mysql,database,node.js,database-design,couchdb,Mysql,Database,Node.js,Database Design,Couchdb,我以前在MySql中为一个简单的博客处理过标签系统,它有一个Tag表、TagMap表和一个Post表,但在我看来,这是一种非常复杂的存储标签并将其与帖子关联的方法。通过标签获取帖子的查询同样复杂 现在我正在Node.js中做一个项目,我正在寻找一种新的方法来存储我的数据和一个新的数据库系统。我已经研究过CouchDB,但是它似乎需要搜索多个标记,并且视图的概念对于我试图完成的工作来说太复杂了 是否有一个数据库系统,最好是一个为node.js提供库/客户端的系统,它是高效的,并且使整个标记过程看起

我以前在MySql中为一个简单的博客处理过标签系统,它有一个
Tag
表、
TagMap
表和一个
Post
表,但在我看来,这是一种非常复杂的存储标签并将其与帖子关联的方法。通过标签获取帖子的查询同样复杂

现在我正在Node.js中做一个项目,我正在寻找一种新的方法来存储我的数据和一个新的数据库系统。我已经研究过CouchDB,但是它似乎需要搜索多个标记,并且视图的概念对于我试图完成的工作来说太复杂了


是否有一个数据库系统,最好是一个为node.js提供库/客户端的系统,它是高效的,并且使整个标记过程看起来很直观?

在这种情况下,我认为您无法比关系数据库做得更好

如果您需要标记同义词,请查看一些想法(但请注意,由于MySQL查询优化器中的缺陷,应该将EXISTS重写为另一个连接)。没有同义词,这个模型可以进一步简化


重要的一点是,使用诸如和之类的技术应该为绝对庞大的数据量和并发用户之外的任何东西提供足够的性能。人们似乎会犯的一个错误是在标记映射表中使用代理键,这会破坏集群。

Redis集合可能在这里工作得很好:创建一个由标记或标记ID组成的post ID键控的集合,以及一个由标记(或标记ID)组成的post ID键控的集合。然后,您可以使用redis的内置集合交集和并集操作符基于多个标记快速搜索