gpt4 book ai didi

MySQL 数据库 - 将数据存储在一个表中或使用查找

转载 作者:行者123 更新时间:2023-11-29 00:39:00 25 4
gpt4 key购买 nike

我正在重新设计一个应用程序,该应用程序在特定表中有 100,000 条记录(目前有 250,000 条记录,并且还在增加)。

该表包含网站和域的信息。

为了速度和资源,我应该在原始表中包含关于任一实体所需的所有数据,还是应该使用两个查找表来存储未共享的信息 - 例如一个存储所有域特定信息的查找表信息和一个存储所有站点特定信息的信息?

谢谢

最佳答案

理想情况下,您应该将它们分成 2 个不同的表,因为一个域将对应多个站点,如果我们采用将域和站点的元数据存储在一个表中的设计,那么在这种情况下需要在站点元数据的每条记录中为域存储冗余信息。相反,如果我们有 2 个单独的表,其中域表每个域有一个记录,站点列表作为记录中的字段之一,站点表中的域名列用于计算给定站点的域,它将确保有组织的存储和没有数据冗余。这是传统 RDBMS 系统的主要原则,这也是我们有多表概念的原因。

另外,如果你想真正扩展你的数据库,你可以考虑使用 NOSQL 数据存储,因为你说数据在不断增加。 Apache HBase可能是一个很好的解决方案,它具有将相关信息分组在一起的概念。

编辑:

问题的澄清:

Just to be clear, domain and sites are not linked. They're just different entities like a domain with no traffic or revenue would be classed as a domain and have domain related data stored for it like number of hyphens or registrar while a domain with a Wordpress install for example and exisitng traffic would be classed as a site - not a domain - and have site specific information stored. Would this change your answer?

在它们不相互关联的情况下,我认为将数据拆分到多个表中不会有任何帮助,除非您要使用分布式 RDBMS 系统。在单节点托管数据库的情况下,行无论如何都由站点/域 ID 索引,并且单个表中的大量行不会降低性能,但如果您正在查看巨大的数据量并希望将它划分到集群中的多个节点上,然后为它们创建独立的表将有助于使每个表都托管在各个节点上,并且数据库能够水平扩展。这是我在这种情况下看到的唯一好处。

关于MySQL 数据库 - 将数据存储在一个表中或使用查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109104/

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