我从来没有设计过一个大型数据库,所以我从不关心索引。但是,现在我正在开发一个需要大型数据库的大型项目。因此,我正在识别每个将在内部联接上使用它作为索引的表。在一张大桌子上的多场索引是一个好主意吗?
只是作为一个例子的大的表中的一个具有字段是这样的:
Userid
Industryid
Teamid
Zoneid
任何与我想是一个识别指向第二个表。所以我已经将这些索引。
此表有60个字段,但其中16个索引+ 1个主字段。
如果这是一个好主意,有这么大的表与所有这些指标?我期待这张表能在1年内超过400万条记录。我之所以做这样的事情是为了让这张表与其他表格之间的内部连接更容易和更快速。
什么是在这样一个大型项目中使用索引的最佳方式?
所有这四个字段看起来都可能是外键。这四个组合*可能*是一个自然主键。我无法讲述其他12个指数,但是具有60个字段和12个指数的表格看起来有点可疑,与数据模型有关。 – wildplasser 2013-02-27 13:33:24
其中12个是外键,4个是可搜索的。所以对于eaxample我有userid和用户名eventhh我有用户名是第二个表称为uses。而且我不确定我是否在这里做了正确的调用,但是这会在这么大的桌子上放下1个内部连接。再加上它将用户名称保留在历史记录中,即使用户名称因任何原因而被更改。 – Jaylen 2013-02-27 16:26:45
使用16张FK的单张桌子违反了3NF/BCNF或艺术作品。避免(内部)连接的反规范化听起来像是过去的不良习惯,IMnsHO。 – wildplasser 2013-02-27 16:38:47