gpt4 book ai didi

mysql - 关于优化多个联接的方法的建议。使用数据库触发器使用另一个表来编译数据是不好的做法吗?

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

我正在开发一个项目,需要能够为员工创建自定义字段。这些字段可能是名字、姓氏等。

我需要对此进行优化,以便为 200 个字段的 10,000 名员工工作。

现在我有一个“employee”表、一个“field”表和数据透视表(“employee_field”)。数据透视表将员工的数据存储在可为空列中的每个字段中,并具有该字段所需的数据类型。它还包含员工 ID 和字段 ID。

我发现连接这些表大约需要 0.5 秒才能加载 500 名员工和 50 个字段。

我将尝试创建另一个表来保存应用程序所需的所有连接数据。这基本上是一个包含员工 ID、字段 ID、字段标签、格式化数据和字段类型别名的表。该表将使用数据库触发器保持最新。

问题:我是否遵循执行此类连接的最佳实践,是否有任何方法可以优化此操作以读取此数据?

最佳答案

您有一个实体-属性-值数据模型。这样的模型本身没有任何问题,但对于您的目的来说似乎有点矫枉过正。

MySQL 应该能够轻松处理包含 200 列的表。我的建议是避免连接,只定义您需要的表。

现在,您的情况可能会更加不稳定。也许需要添加新列。在这种情况下,新字段就可以了。 。 。如果不经常添加它们,并且它们适用于所有员工。

如果您经常需要处理新字段,或者不同的员工有不同的字段子集。如果是这种情况,那么我会推荐混合模型。将几十个公共(public)字段放在一张表中,然后针对新属性构建更灵活的EAV模型。

关于mysql - 关于优化多个联接的方法的建议。使用数据库触发器使用另一个表来编译数据是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516506/

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