Net*_*fmx 3 sql database-design
我只是想看看别人对这个问题的看法。我有一个项目,每个用户都有大量独特信息。现在,考虑到没有冗余并且有大量用户,将数据拆分成较小的表会更快吗?
我确实尝试了一个包含1000个查询的测试,其中一个有87列,而另一个仅将登录信息存储。在其中一个中,我得到了1372毫秒,其他的是879毫秒;乍一看似乎更快,但是可能有人比我有更多的经验,可以对此发表自己的看法吗?
在测试中,如果要使用“ SELECT *”从大表和小表中查询,以返回所有列,则可以,当然,大表将需要更长的时间,因为它必须返回更多数据。但是,在生产应用程序中,应将应用程序中的查询作为目标,仅返回所需的列。
如果每个表都具有相同的索引和要过滤的数据,并且每个表都返回相同的选定列,则结果集可能应该在大致相同的时间内返回。但是,我应该补充一点,在考虑性能测试时,时间可能会非常误导。数据库服务器有许多因素会不断变化,与您正在运行的查询无关,但绝对会影响其运行时间。代替时间来衡量,请尝试查看逻辑读数。
至于您的设计问题,无论哪种方法在技术上都是可行的。但是,您可能需要考虑需要多长时间访问一次特定数据,以帮助开发团队的其他成员。如果您有80%的时间查询了20%的列,则可能需要考虑将它们放在自己的表中。这应该有助于避免新开发人员花费大量时间来团队中,而不必为了确定他们要查询的内容而筛选许多通常不重要的数据列。
此外,从物理设计的角度来看,如果需要考虑成本问题,则可以将需要频繁访问的20%表放置在性能更高的磁盘驱动器上,将80%的数据放置在性能较低的磁盘驱动器上。
| 归档时间: |
|
| 查看次数: |
553 次 |
| 最近记录: |