从this开始,图形数据库执行多表联接的速度要快得多。其次,与连接等效的速度与表的大小无关。
depth seconds records
2 0.016 ~2,500 --mysql
3 30.267 ~125,000
4 1,543.505 ~600,000
2 0.010 ~2,500 --neo4j
3 0.168 ~110,000
4 1.359 ~600,000
我知道SQL使用笛卡尔联接,字面上乘以表的大小和跳数。关于图数据库,我所听到的只是“一流的关系结构”。
什么数据结构+算法可以使图数据库快速遍历,而不管跃点和表的大小如何?
如何在RDBMS系统中实现它?我在想左联接和嵌套查询。
最佳答案
图遍历通常比联接更快,因为图中的每个节点都对其邻居进行计数并将其计数添加到结果中。可以使用多线程等轻松地对此进行优化。
我认为您无法在SQL中执行此操作,但是可以执行一些(递归)代码。这会导致很多查询,从而影响您的性能。
因此,如果您真的想使用图形数据,则应使用图形数据库。
关于sql - 为什么图遍历比联接更快?有关SQL中标准化数据的任何类(class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11846131/