MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
的输出解释
显示所有
在类型
列MySQL时使用全表扫描解决一个查询。这通常发生在下列条件:
桌子太小,更快的执行表扫描比打扰键查找。这是常见的表只有不到10行和行长度短。
没有可用的限制
在
或在哪里
索引列的条款。你比较与常量值和MySQL索引列计算(基于索引树)常量盖太大的表,表扫描会更快。看到部分8.2.1.1,“WHERE子句优化”。
您正在使用一个关键基数较低(多行匹配键值)通过另一个列。在这种情况下,MySQL假定使用键可能需要许多键查找,表扫描会更快。
对于较小的表,表扫描通常是合适的和对性能的影响可以忽略不计。大型表,试试以下技术来避免优化器错误地选择一个表扫描:
使用
分析表
更新的主要分布扫描表。看到部分13.7.3.1,“分析表声明”。tbl_name
使用
力指数
扫描表告诉MySQL表扫描非常昂贵相比,使用给定的索引:SELECT * FROM t1, t2力指数(index_for_column)t1。col_name= t2。col_name;
开始mysqld与
——max-seeks-for-key = 1000
选择或使用设置max_seeks_for_key = 1000
告诉优化器认为没有键扫描导致超过1000键。看到5.1.8部分,“服务器系统变量”。