首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL查询性能

MySQL查询性能
EN

Stack Overflow用户
提问于 2011-01-26 14:04:04
回答 6查看 293关注 0票数 2

我的表结构如下:

代码语言:javascript
运行
复制
EVENT_ID(INT)    EVENT_NAME(VARCHAR)    EVENT_DATE(DATETIME)    EVENT_OWNER(INT)

我需要添加字段EVENT_COMMENTS,它应该是文本字段或非常大的VARCHAR

我有两个地方可以查询这个表,其中一个位于列出所有事件的页面上(在该页面中,我不需要显示event_comments字段)。

另一个页面加载特定事件的所有细节,我需要在该页面上显示event_comments字段。

我是否应该为该事件创建一个带有event_id和event_comments的额外表?或者我应该在当前的表上添加这个字段吗?

换句话说,我要问的是,如果我的表中有一个文本字段,但我没有SELECT it,它会影响对我的表的查询的性能吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-26 14:08:53

向表中添加字段使其更大。

这意味着:

  • 表扫描将花费更多时间。
  • 较少的记录将被放入页面,从而进入缓存,从而增加缓存丢失的风险。

但是,使用join来选择这个字段需要更多的时间。

因此,将这个字段添加到这个表中将使没有选择它的查询运行得更慢,而那些选择它的查询运行得更快。

票数 2
EN

Stack Overflow用户

发布于 2011-01-26 14:07:39

是的,它会影响演出。至少,根据这篇文章昨天发布的数据。

根据它,如果您不想遭受性能问题,最好将它们放在一个单独的表中,并在需要时加入它们。

这是相对部分:

尝试限制表中的列数。一个表中太多的列会使查询的扫描时间比只有几个列的时间长得多。此外,如果您的表中有许多列通常不被使用,那么使用空值字段也会浪费磁盘空间。对于可变大小字段(如text或blob )也是如此,在这些字段中,表的大小可能比需要的要大得多。在这种情况下,您应该考虑将附加列拆分到不同的表中,在记录的主键上将它们连接在一起。

票数 1
EN

Stack Overflow用户

发布于 2011-01-26 14:06:30

你应该坐在同一张桌子上。

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

https://stackoverflow.com/questions/4805390

复制
相关文章

相似问题

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