暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[ACDU 翻译] 8.2.1.23避免全表扫描

原创 由迪 2021-04-15
776

当MySQL使用全表扫描解决查询时, 列中 的输出EXPLAIN显示 。这通常在以下情况下发生: ALLtype

  • 该表是如此之小,以至于执行表扫描要比打扰键查找要快得多。对于少于10行且行长较短的表,这是很常见的。
  • 索引列 的ONorWHERE子句中没有可用的限制 。
  • 您正在将索引列与常量值进行比较,而MySQL已计算(基于索引树)(常量覆盖了表的很大一部分)并且表扫描会更快。请参见 第8.2.1.1节“ WHERE子句优化”
  • 您正在通过另一列使用基数较低的键(许多行与键值匹配)。在这种情况下,MySQL假定通过使用键可能需要进行多次键查找,并且表扫描会更快。

对于小型表,表扫描通常是合适的,并且对性能的影响可以忽略不计。对于大型表,请尝试以下技术,以避免优化器错误地选择表扫描:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论