我将制作一个包含许多类似项目(数百万)的应用程序,并且我想将它们存储在 MySQL 数据库中,因为我想做很多统计数据并搜索特定列的特定值。
但同时,我将存储所有项目之间的关系,它们在许多连接的二叉树状结构(传递闭包)中相关,而关系数据库不擅长这种结构,所以我想存储Neo4j 中所有对此类数据都有良好性能的关系。
我的计划是将除了 MySQL 数据库中的关系和所有关系之外的所有数据都item_id
存储在 Neo4j 数据库中。当我想查找一棵树时,我首先在 Neo4j 中搜索树中的所有item_id
:s,然后在 MySQL 数据库中搜索查询中的所有指定项,如下所示:
SELECT * FROM items WHERE item_id = 45 OR item_id = 345435 OR item_id = 343 OR item_id = 78 OR item_id = 4522 OR item_id = 676 OR item_id = 443 OR item_id = 4255 OR item_id = 4345
这是个好主意,还是我错了?我以前没有使用过图形数据库。有没有更好的方法来解决我的问题?在这种情况下 MySQL 查询将如何执行?