我正在制作一个决策树,并且可能(除非有替代方案)需要一个具有快速可访问元数据的节点数据库。我将拥有数千到数万个节点,所有节点都有一些实例数据,有些是对象。
我应该使用mySQL数据库,还是有更好的方法在Java中实现数据库?
另外,我认为我需要一个数据库,因为最好让所有节点都预先实例化,而不是在程序启动时实例化所有节点。这个逻辑有道理吗?
答案 0 :(得分:2)
在这种情况下,NoSql数据库不能很好地工作,因为你必须做关节。
MySql数据库可以进行关节,但是你必须指定特定的关节数量(将做出多少决定)。
您最好的选择是使用图形数据库,因为决策树将有许多链接(关系是/否)。此类数据库的示例: http://neo4j.com/
答案 1 :(得分:1)
只要您没有内存问题,我建议mongoDB
。或者,在Java中几乎没有100k节点。所以如果你不需要重新加载东西,只需将它作为你的java实现的一部分。 mysql很好。但连接到它可能很费时间
答案 2 :(得分:1)
如果您发现需要数据库(请参阅我对您的问题的评论),这听起来像嵌入式数据库比其他答案中建议的数据库更合适。我在HSQLDB取得了成功 - 您可以在应用程序中启动和停止它。
尽管如此,我还是建议您先确定是否确实需要数据库,然后才能在应用程序中添加数据库。
答案 3 :(得分:1)
如果您打算使用树,请考虑支持分层查询的dbms,例如Oracle或Postgres
答案 4 :(得分:0)
我总是去找mySql。因为它易于使用。并且随时可以获得帮助。如果你考虑一个合适的标准,我认为Oracle会这样做。