我有以下表结构:
EVENT_ID(INT) EVENT_NAME(VARCHAR) EVENT_DATE(DATETIME) EVENT_OWNER(INT)
我需要添加字段EVENT_COMMENTS
,它应该是一个文本字段或一个非常大的VARCHAR
。
我有两个地方可以查询此表,一个是在列出所有事件的页面上(在该页面中我不需要显示 event_comments 字段)。
另一个页面加载特定事件的所有详细信息,我需要在该页面上显示 event_comments 字段。
我应该为该事件创建一个包含 event_id 和 event_comments 的额外表吗?或者我应该在当前表中添加该字段?
换句话说,我要问的是,如果我的表中有一个文本字段,但我没有SELECT
它,是否会影响查询的性能到我的 table 吗?
最佳答案
向表格添加字段会使其变得更大。
这意味着:
- 表扫描将花费更多时间
- 页面中容纳的记录较少,因此进入缓存的记录也较少,从而增加了缓存未命中的风险
但是,通过联接选择此字段会花费更多时间。
因此,将此字段添加到此表中将使未选择它的查询运行得更慢,而选择它的查询运行得更快。
关于sql - MySQL查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4805390/