gpt4 book ai didi

c# - 将外键添加到其他表或在选择查询中创建平面表的速度更快

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:10 24 4
gpt4 key购买 nike

我想通过选择查询获得最快的方式。我有一个包含两百万行的表格,我想为每一行添加有关国家/地区的信息。例如表:strain(id,name,sequenceinformations,depositor,numberofsequences)我想添加国家信息:country(id,name,code)在同一张表中执行此操作或添加国家/地区表并仅添加国家/地区 ID 的最快方法是什么。我知道对于设计来说,分开表更好,对于维护来说更好,但就我而言,我只搜索速度。

最佳答案

古老的规范化与非规范化辩论。乍一看,一个单独的表(规范化方法)似乎是合乎逻辑的选择。但是,对于国家数据(往往相对静态),将其直接添加到第一个表中是一个可行的选择。在一个国家更名的罕见情况下,维护量相当小。当然,它会占用更多空间,但空间很便宜。

也就是说,对于相对较小的数据库,性能差异可能可以忽略不计。因此,最好的方法是您认为最容易理解和维护的方法。

还要考虑国家信息是否可能在其他表中使用:如果您不小心,维护可能会变得困难且容易出错。

因此,为了解决您的具体问题:是的,在大多数情况下,非规范化方法在技术上对于选择查询会更快,但在更新查询中会更慢。差异是否足以证明它是另一个问题。

顺便说一句,我最近看到了一个有趣的方法,其中为了填充下拉列表等目的保留了一个包含国家/地区数据的单独表格,但国家/地区名称本身被添加到其他表格中。显然,这种方法不如完全规范化那么稳健,但它确实有助于加强一定程度的一致性。

关于c# - 将外键添加到其他表或在选择查询中创建平面表的速度更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32496798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com