以前基于lucene设计过一个标签系统,在数据量和并发量比较小的情况下勉强可以使用,数据超过100万条时查询就超过1秒,排序更是影响很大的性能,不适合中型网站的规模,最近在研究nosql数据库,发现mongodb很不错,支持多值字段,而且在其内部是通过倒排索引实现的,足可i支持一个标签系统,而且mongodb是的查询功能与关系数据库最接近,并发读写都具备比较好的性能,于是开始测试,发现从建立索引270万条数据中检索并按时间排序需要小于5ms的时间,真是效率惊人,当然有好处,也有不做,mongodb检索支持的语法不如lucene丰富,仅支持 and or,和not in, 其中not in 可以和and 或or组合,其他复杂的操作只能通过js解决了,但使用js效率就大打折扣了,但是我们的功能要求,不需要js帮助就能实现了。我想一般的网站的标签使用and or应该就可以解决了。
基于mongodb的标签系统设计
最新推荐文章于 2023-01-08 19:40:03 发布