我有一个超过500万行的表,其中包含分层数据(~20级)。该表每年都呈指数级增长,表中CRUD操作的递归方法变得越来越慢。该表收到大量的更新,读取和删除。有没有人知道任何适合替换当前邻接列表模型的数据模型,或者有什么步骤来加速表格?
答案 0 :(得分:3)
您是否查看了SQL Server 2008及更高版本中可用的HierachyID数据类型。 http://technet.microsoft.com/en-us/library/bb677290.aspx
在MS Press的这本免费电子书中有一个很好用的部分
答案 1 :(得分:2)
五百万行什么都没有。
精心设计的邻接列表模型与设计糟糕的模型之间存在差异。如果你发布你的DDL,也许我们可以改进它,而不是你抛弃整个概念,因为实现很差。
在任何情况下,我都不会使用这样的模型在Relational数据库中实现树结构或层次结构。我使用了以下(忽略历史),数百次,而且速度非常快。如果您为表格和所有索引提供DDL,我可以专门为它提供一个模型。
不熟悉关系建模标准的读者可能会发现▶IDEF1X Notation◀有用。
答案 2 :(得分:1)
也许分层或图形数据库是更好的选择。 SQL并不总是答案 - 这就是为什么NoSQL是一个可行的利基。