首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于优化多个联接的方法的建议。使用另一个表来使用数据库触发器编译数据是一种不良的做法吗?

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

Stack Overflow用户
提问于 2017-02-28 18:48:27
回答 2查看 27关注 0票数 0

我正在做一个项目,在这个项目中我需要能够为员工创建自定义字段。这些字段将类似于名字、姓氏等。

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

现在我有一个"employee“表、一个”字段“表和pivot表("employee_field")。pivot表用该字段所需的数据类型存储可空列中每个字段的员工数据。它还包含employee id和字段id。

我发现加入这些表大约需要0.5秒才能加载500名员工,其中包含50个字段。

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

问题:我遵循这种连接的最佳实践吗?有什么方法可以优化这个操作来读取这些数据?

EN

回答 2

Stack Overflow用户

发布于 2017-02-28 18:52:45

您有一个实体属性值数据模型。这样的模型本身并没有什么问题,但它似乎对您的目的来说是过分的。

MySQL应该能够很容易地处理一个包含200列的表。我的建议是避免连接,只需定义所需的表。

现在,你的情况可能会更多变一些。也许需要添加新的列。在这种情况下,新的字段是可以的。。。如果添加它们的次数不多,并且它们适用于所有员工。

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

票数 1
EN

Stack Overflow用户

发布于 2017-02-28 19:12:03

经过进一步的测试,我得出的结论是,这与绑定到SQL而不是SQL模式的应用程序有关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42516506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档