首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL效率问题

问MySQL效率问题
EN

Stack Overflow用户
提问于 2010-11-01 16:51:55
回答 4查看 89关注 0票数 2

我有下面的表格

事件:

代码语言:javascript
复制
EVENT_ID EVENT_OWNER_ID EVENT_NAME EVENT_DATE EVENT_PRIVATE EVENT_ACTIVE

除EVENT_NAME之外的所有字段都是date、int或bit。

在EVENT_ID和EVENT_NAME之间使用另一个表进行匹配,并在需要时使用JOIN查看事件名称是否更有效?或者,与我目前使用的只有一个带有EVENT_NAME的表相比,连接的效率更低吗?

EN

回答 4

Stack Overflow用户

发布于 2010-11-02 04:14:36

两个表在所有方面的效率都较低,除非您跟踪使用相同名称的重复事件(标准化示例)。该技术将节省的唯一资源是非常少量的磁盘空间。就查询的效率而言,一个表总是更有效率。

基本上,如果两段数据(在本例中是Event_Name和事件数据的其余部分)之间存在一对一的关系,那么您将希望这些数据位于同一个表中。

如果你想了解更多,谷歌规范化与非规范化。

票数 1
EN

Stack Overflow用户

发布于 2010-11-01 17:07:15

在事件列表中存储事件固定信息是不正确的。如果您决定更改事件名称-您将不得不更改很多行,而不是1行。

你的数据库应该被规范化。在events列表中-仅ides,以及event_id列表中的特定于事件的数据(日期、时间、生成器)-事件的固定数据(名称、严重性、类似于文档等)

票数 0
EN

Stack Overflow用户

发布于 2010-11-01 17:15:57

如果一个事件只能有一个所有者、一个名称和一个日期...那么你可以把它放在一张表里。

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

https://stackoverflow.com/questions/4067573

复制
相关文章

相似问题

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