SQL图效率

时间:2010-11-22 15:52:33

标签: sql sqlite

背景

我使用SQLite3来表示有向图。

情景1

我有两个表:节点和关联

Node表包含节点ID和与特定节点相关的数据。

关联表包含父节点字段和子节点字段(以及主键ID)。

情景2

我有一个表:Node

节点表包含节点ID,相关节点数据和大量节点关联列(大约100个)以保存另一个节点的ID。

问题:

哪个效率更高?是否有一个特定的图表大小,一个变得比另一个更好?有关这两个选项的可扩展性的任何经验吗?

我最常见的查询是确定一个特定节点所连接的所有节点。

1 个答案:

答案 0 :(得分:3)

使用方案1。

场景2违反了基本的规范化指南,当您需要支持100多个协会时,您很快就会撞到墙上。执行适当的SQL以分析关系也很困难。

快速!有多少个节点有10个和20个关联?该查询是场景2的噩梦。场景1很容易。