如何从数据库中获取具有最佳性能的树形结构数据?例如,假设数据库中有一个文件夹层次结构。文件夹数据库行所在的位置ID, Name and ParentID列。
您会使用特殊的算法一次获取所有数据,最大限度地减少数据库调用量并在代码中处理它吗?
或者您会使用对数据库进行多次调用并直接从数据库获取结构吗?
也许根据数据库行数、层次结构深度或其他因素有不同的答案?
Edit:我使用 Microsoft SQL Server,但从其他角度来看的答案也很有趣。
这实际上取决于您将如何访问该树。
一种巧妙的技术是为每个节点提供一个字符串 id,其中父节点的 id 是子节点的可预测子字符串。例如,父级可能是“01”,子级可能是“0100”、“0101”、“0102”等。这样,您可以使用以下命令立即从数据库中选择整个子树:
SELECT * FROM treedata WHERE id LIKE '0101%';
由于条件是初始子字符串,因此 ID 列上的索引将加快查询速度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)