Yuv*_* A. 24 sql database processing-efficiency
对于有用户的网站.每个用户都有能力创建任何数量的,我们称之为"帖子":
效率方面 - 最好为所有帖子创建一个表,为每个帖子保存创建帖子的用户的用户ID - 或者为每个用户创建一个不同的单独表,并只创建帖子那个用户?
Guf*_*ffa 31
当您向其添加更多数据时,数据库布局不应更改,因此用户数据肯定应在一个表中.
也:
拥有多个表意味着您必须动态创建查询.
一个表的缓存查询计划不会用于任何其他表.
在一个表中包含大量数据并不会对性能产生太大影响,但是有很多表可以.
如果要向表中添加索引以加快查询速度,则在单个表上执行操作要容易得多.
dri*_*iis 10
那么回答具体的问题:在查询效率方面,拥有小表总是更好,因此每个用户的表可能是最有效的.
但是,除非您有很多帖子和用户,否则这不太重要.即使拥有数百万行,您也可以通过良好的索引获得良好的性能.
我强烈建议不要使用每用户表策略,因为它会给您的解决方案增加很多复杂性.当您需要查找在一年内发布主题的用户时,您如何查询?
在需要时进行优化.不是因为你认为/害怕某些事情会变慢.(即使你需要进行优化,也会有比每个用户更容易的选项)
如果性能是一个问题,您应该了解数据库索引。虽然索引不是 SQL 标准的一部分,但几乎所有数据库都支持它们以帮助提高性能。
我建议您为所有用户的帖子创建一个表,然后向该表添加索引以提高搜索性能。例如,您可以在user列上添加索引,以便您可以快速找到给定用户的所有帖子。您可能还需要考虑添加其他索引,具体取决于您的应用程序的要求。