SELECT*来自大表,还是拆分表并进行许多小查询?

G-W*_*ght 1 php mysql

我有一个个人项目(基于浏览器的游戏)和一个表,我用来存储在db上安装的玩家设备(武器/装甲和这些项目的统计数据)目前是102列.

每次看表时都会让我感到烦恼,因为它太大了,但使用它的页面主要需要所有的信息,所以用户可以看到"他们所有的东西".

所以我在考虑对表进行规范化,但我基本上想知道SELECT * from table WHERE user = user在大表上有一个,或者将它分成许多小表,并且有很多较小的查询来收集相同的信息是否更好.

或者可能有更好的方法使用连接或其他SQL wizadry?

如果我要将表分开,我想我最终可能有12个表来替换1个大表,所以如果我用单个查询点击所有表,我将不得不在页面上进行15次查询需要.如果页面小而有效,那么对于页面来说是15个查询吗?

小智 6

那么你应该考虑去至少第3范式.我发现它可能是一张像你声称它包含冗余一样大的表.这会降低您的查询速度,而不是添加联接.


duf*_*ymo 5

您应该了解规范化以及它如何使您和您的模型受益.

SQL可以轻松处理JOIN.如果查询中有超过7个,则可能需要将其分解.

作为用户,我怀疑我是否想要一次处理多组100件物品.也许您应该考虑如何更好地呈现最重要的信息并让用户有机会深入了解它.

性能和效率更可能取决于良好的索引.如果列出现在WHERE子句中,则最好有一个索引.