我已经尝试了两种方法,但我无法决定在输入大小增加时哪一种方法会更好。MySQL体系结构优化
首先后面的故事:
我们的产品,每个产品都有一个类别路径(例如配件鞋,运动鞋)
我想我的产品,以及它们各自的类别连接,同时保持兼容的东西与3NF规则。
我可以去这两个方面,我可以:
拥有很多产品和类别之间的一对多关系(通过炸毁类路径成单独的类别和形成在许多人的关联很多表)
优点:
简单易懂。缺点:
许多协会以指数级增长!你可以想象为什么,每个产品都有多个类别,测试用例只涉及250,000个产品。我可以直观地看到,随着输入大小的增加,数据库引擎的压力将会增加。创建类别路径和产品之间的多对多关系,以及类别路径和实际类别之间的多对多关系。这对我来说很有意义,因为250,000个产品的测试用例中的类别路径限制为13,000个独特实例,而在另一个多对多关系中与其实际类别相关联的这些路径不超过61,000行。
优点:
远更少类别关联,用于通过数据库迅速(61000个协会相比,形成于第一技术900000个协会)缺点:
远更内部联接。产品与类别路径相连,而类别路径又与多对多关系中的类别相关联。
您认为哪种技术更合适?我需要快速检索,因此快速选择语句应该是主要标准。
我意识到,这很大程度上取决于正确的索引,但在第一种情况下,行的大小增长至少3倍,因为在第二种情况下,存在如此多的内部连接,我担心检索速度受到负面影响。