最近在看一些知识库的项目,自己小有体会,这里简单记录一下。

近几个月来,出于项目需要,自己简单学习了下Elasticsearch,并且重新学习了下Neo4j。我发现看的知识库的项目所使用的数据库不尽相同,有基于Neo4j的,有基于Elasticsearch的,有基于MongoDB的,这不禁令我反思。

这些数据库的相似之处在于都非关系型数据库,不同之处在于各自所更能适配的数据类型不同。Neo4j更适配的数据是那些数据类型简单但之间关系复杂多样化的,Elasticsearch更适配的数据或者说场景是待检索的数据尤其是需要定制复杂规则过滤排序的数据,而MongoDB则更加通用一些。

在实际项目中,对于数据量比较小或者业务场景比较简单的情况下,其实这三种数据库基本都能完成需求;而只有当数据的量级很大(比如在上百万条)以及业务场景比较复杂的情况下,三种各自的优劣才能比较明显的体现出来。数据库之间也没有通用的优劣高低之分,只有哪个更适配任务的数据类型和场景之分。

评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Volantis 作为主题,总访问量为
载入天数...载入时分秒...
冀ICP备20001334号