gpt4 book ai didi

mysql - 如何存储数据——我应该直接复制它吗

转载 作者:行者123 更新时间:2023-11-29 06:55:52 26 4
gpt4 key购买 nike

我想存储各种机构的数据。我想存储允许在其国家/地区内定位所述机构的数据。

因此,我需要为每个机构存储城镇数据、县数据和国家/地区数据。

我分别有一个镇、县和国家数据库,它们都链接在一起,例如我可以搜索一个镇,它的“county_id”列与县表中县的 ID 等相匹配。

我想知道从实际机构表中引用此数据的最佳方法。

目前在这个表中我只有一个城镇、县和国家列,其中包含相应的数据。

我的 URL 结构是 website.com/country/county/town/name,所以有了这样的数据,我可以通过一次查询找到一家机构,而无需连接等。

只有一列带有城镇 ID,然后每次都使用连接查询以查找县/国家/地区数据有什么好处?显然,一个好处是,如果任何数据发生更改,它本身会自动更新。另一个我想是它需要更少的数据库存储空间。

另一方面,它需要更多查询。

有什么想法吗?

谢谢

最佳答案

好吧,您说得很对:反规范化通常有助于提高读取性能,但对写入性能不利,而规范化通常则相反。

通常,对于特定数据,您读取的次数多于写入的次数。如果您是这种情况,那么我会按原样保留数据(每个机构条目中都有重复的城镇、县等)。更新速度会更慢(更多代码、更多验证、更多时间发送和执行更新)但阅读速度更快(更简单的查询代码、更少的时间花在数据库端执行查询等)。我最近参与了一个项目,其中数据每月更新一次,但每天多次读取(显示在网络应用程序中),因此我们最终不再拥有规范化的数据库和大量连接(伪连接或实际连接) , 到类似于您在此处拥有的数据的重复,并且网络应用程序的读取性能和响应能力显着提高。

哦,至于数据库空间(如磁盘上占用的物理空间),虽然从理论上讲规范化您的表会减少空间(有时会显着减少),但这不会真正影响读取和/或写入速度显着,因此如果您在只追求性能(而不关心磁盘空间)时不考虑这个参数,您会过得更好。

关于mysql - 如何存储数据——我应该直接复制它吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12745603/

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