Optimization 数据库结构,优化多行表

Optimization 数据库结构,优化多行表,optimization,database-design,Optimization,Database Design,我有一张有很多行的桌子。结构是这样的: UserID | ItemID | Item Data... 如果我将其划分为每个用户或每个较小的用户组的一个表,我会在查询时间上看到任何收益吗 查询总是由单个用户获取/修改所选项目。不要创建多个表 告诉我们你认为“很多行”是什么 表上有索引或约束吗 如何插入、更新和删除数据 通常,我希望在UserID、ItemID上有一个唯一的索引,但如果不了解更多关于您的环境的信息,就很难说了 另外,请提供有关数据库平台和您选择的数据类型的信息。@Romain Hi

我有一张有很多行的桌子。结构是这样的:

UserID | ItemID | Item Data...
如果我将其划分为每个用户或每个较小的用户组的一个表,我会在查询时间上看到任何收益吗


查询总是由单个用户获取/修改所选项目。

不要创建多个表

告诉我们你认为“很多行”是什么

表上有索引或约束吗

如何插入、更新和删除数据

通常,我希望在UserID、ItemID上有一个唯一的索引,但如果不了解更多关于您的环境的信息,就很难说了


另外,请提供有关数据库平台和您选择的数据类型的信息。

@Romain Hippeau主键是唯一的行id(自动递增)。有一个关于userid、itemid组合的索引,以及每个独立的索引。那么你就很好了——不要放在多个表中。很多行都在高十万范围内。UserID、ItemID和组合都有索引(以及一些其他常用的搜索字段)。这是在SQL Server 2000上实现的。在适当的硬件和适当的索引上,高达数十万的数据不应该迫使您查看像每用户表这样的奇怪场景,IMHO。但不是一个SQL Server 2000的家伙。@aepheus典型查询的执行计划是什么样子的-它是使用索引的吗?