数据库设计 – 如何设计用于存储排序列表的数据库?
我希望在数据库中存储一个排序列表.我想有效地执行以下操作.
>插入(x) – 将记录x插入表中 我能想到的简单方法是在表中存储某种“rank”属性,并通过对该属性进行排序来进行查询.但是在这种方法中,插入/修改具有等级的记录变成了昂贵的操作.有更好的方法吗? 具体来说,我希望使用Amazon的SimpleDB实现该表.但是关系数据库的一般答案也应该有所帮助. 负载配置文件更新: 由于我计划将其用于Web应用程序,因此它取决于使用该应用程序的用户数量. 如果有100k活跃用户(超级乐观:P),那么我每天的近似估计就是 500k选择,100k插入和删除,500k更新 我希望桌子总共增长到500k. 我希望优化更新,插入和比较操作.项目的排名将不断变化,我需要更新表格. 解决方法如果排名不完全是任意的,而是可以从其他一些属性(例如姓名,玩家得分等)中得出,那么请仔细看看 Joel’s answer.如果它是数据的任意属性,则应将其存储为记录表中的列.假设Amazon的SimpleDB与典型的RDBMS类似,那么您可以将此列编入索引,并使用适当的索引策略快速满足上述所有查询.这对于RDBMS来说是正常的. 鉴于您期望高插入和更新活动,以及相对较高的读取活动,我建议您执行以下操作: >将表格集中在排名上,特别是如果绝大多数查询都是针对排名的话.如果没有,或者如果在SimpleDB中没有选择聚类键,则只需创建一个以rank作为前导列的索引.这将满足查询3-6. 如果您希望在100K大小的表上读取100K,我建议不要使用链接列表方法.它不能很好地扩展到那些尺寸. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |