我正在设计一个数据库,并希望对其进行规范化。在一个查询中,我将连接大约30-40个表。如果这个网站变得非常流行,这会影响网站的性能吗?这将是主要查询,并且将被调用50%的时间。其他查询我只需要连接两个表。
现在我有一个选择,是规范化还是不规范化,但如果规范化在将来成为问题,则可能需要重写40%的软件,这可能需要很长时间。在这种情况下规范化是否真的会有影响?现在应该去除规范化吗?
我正在设计一个数据库,并希望对其进行规范化。在一个查询中,我将连接大约30-40个表。如果这个网站变得非常流行,这会影响网站的性能吗?这将是主要查询,并且将被调用50%的时间。其他查询我只需要连接两个表。
现在我有一个选择,是规范化还是不规范化,但如果规范化在将来成为问题,则可能需要重写40%的软件,这可能需要很长时间。在这种情况下规范化是否真的会有影响?现在应该去除规范化吗?
当性能是一个关注点时,通常有比去除范式更好的替代方案:
不要过早进行优化。非规范化并不是加速网站的唯一方法。您的缓存策略也非常重要,如果那个涉及30-40个表的查询是相当静态的数据,缓存结果可能会证明是更好的优化。
此外,考虑写入次数与读取次数之比。如果您每次插入或更新大约进行10次读取,可以说数据相当静态,因此应该将其缓存一段时间。
如果最终非规范化您的模式,您的写入成本也会变得更高,并且可能会减慢事情的速度。
在进行太多优化之前,请仔细分析您的问题,并等待看到系统瓶颈真正存在的地方,因为您可能会惊讶于首先应该优化什么。
规范化可能会影响性能。但这并不是过早去规范化的理由。
首先进行完全规范化,然后再看看是否存在性能问题。以您描述的速率(每天1000次更新/插入),除非表格非常庞大,否则我认为您不会遇到问题。
即使有很多数据库优化选项(索引、准备好的存储过程、物化视图等),您也可以使用。