sql - MySQL查询性能

标签 sql mysql query-performance

我有以下表结构:

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/

相关文章:

php - 重复键上的 Mysql 仅当 BlahVAl < BlahRowVal 时更新表

php - 计算赞成票和反对票插件的计数

php - JSON 输出重音问题

MySQL 无法识别 WHERE 中的日期时间索引

php - 在 MySQL/PHP 中进行近似搜索匹配的最佳方法?

sql - 如何从sql表中选择替代行?

mysql - 我的架构中是否做错了什么?

mysql - Reorganize MariaDB table partition 有什么影响?

重复时 MySQL 查询运行速度变慢

mysql - 优化 MySQL 查询性能