重庆 手机网站制作,用哪个程序做网站收录好,解析域名就可以做网站,市场营销策划方案格式模板select version()#xff1a;5.7.21MySQL 提供了一个 EXPLAIN 命令, 它可以对 SQL 语句进行分析, 并输出 SQL 执行的详细信息, 以供开发人员针对性优化.例如分析一条 SELECT 语句EXPLAIN 结果中的type字段Tips#xff1a;常见的扫描方式system#xff1a;系统表#xff0c;…select version()5.7.21MySQL 提供了一个 EXPLAIN 命令, 它可以对 SQL 语句进行分析, 并输出 SQL 执行的详细信息, 以供开发人员针对性优化.例如分析一条 SELECT 语句EXPLAIN 结果中的type字段Tips常见的扫描方式system系统表少量数据往往不需要进行磁盘IOconst常量连接eq_ref主键索引(primary key)或者非空唯一索引(unique not null)等值扫描ref非主键非唯一索引等值扫描range范围扫描index索引树扫描ALL全表扫描(full table scan)type扫描方式由快到慢1.system上例中从系统库mysql的系统标proxies_priv里查询数据这里的数据在Mysql服务启动时候已经加载在内存中不需要进行磁盘IO。官方文档中的解释该表只有一行(系统表)。这是const联接类型的特例2.const模拟数据Explain分析结果上例中id是主键(primary key)连接部分是常量1通过索引一次就能找到速度非常快场景命中主键(primary key)或者唯一索引(unique)被连接的部分是一个常量值(const)3.eq_ref模拟数据Explain分析结果上例中对于前表user表中的每一行(row)对应后user_balance表只有一行被扫描这类扫描的速度也非常的快场景1、 联表(join)查询2、 命中主键(primary key)或者非空唯一索引(unique not null)3、 等值连接4.ref模拟数据同eq_ref模拟数据区别user_balance表中的主键索引改为普通索引Explain分析结果联表查询由于后表使用了普通非唯一索引对于前表user表的每一行(row)后表user_balance表可能有多于一行的数据被扫描单表查询当id改为普通非唯一索引后常量的连接查询也由const降级为了ref因为非唯一索引所以有多于一行的数据被可能被扫描ref每一次匹配可能有多行数据返回虽然它比eq_ref要慢但它仍然是一个很快的join类型场景联表查询普通非唯一索引5.range模拟数据Explain分析结果betweenin,,range比较好理解它是索引上的范围查询它会在索引上扫码特定范围内的值6.index话外音当前测试表为InnoDbMyISAM 内置了一个计数器count()时它直接从计数器中读index类型需要扫描索引上的全部数据它仅比全表扫描快一点7.ALL模拟数据Explain分析结果如果id上不建索引,则全表扫描总结type类型从快到慢systemconsteq_refrefrangeindexALL作为一名合格的后端开发者应该熟悉掌握Explain结合业务建立正确索引而不是每个字段建立索引(滥用)