当前位置: 首页 > 编程笔记 >

MySQL EXPLAIN关键字是执行查询还是只是解释查询?

危裕
2023-03-14
本文向大家介绍MySQL EXPLAIN关键字是执行查询还是只是解释查询?,包括了MySQL EXPLAIN关键字是执行查询还是只是解释查询?的使用技巧和注意事项,需要的朋友参考一下

EXPLAIN关键字告诉MySQL如何执行查询。让我们首先创建一个表-

create table DemoTable1375
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> FirstName varchar(20),
   -> INDEX FIRST_INDEX(FirstName)
   -> );

使用插入命令在表中插入一些记录-

insert into DemoTable1375(FirstName) values('Chris');
insert into DemoTable1375(FirstName) values('Bob');
insert into DemoTable1375(FirstName) values('Sam');
insert into DemoTable1375(FirstName) values('David');

使用select语句显示表中的所有记录-

select * from DemoTable1375;

这将产生以下输出-

+----+-----------+
| Id | FirstName |
+----+-----------+
|  2 | Bob       |
|  1 | Chris     |
|  4 | David     |
|  3 | Sam       |
+----+-----------+
4 rows in set (0.00 sec)

这是使用MySQL EXPLAIN的查询-

explain  select * from DemoTable1375;

这将产生以下输出-

+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+
| id | select_type | table         | partitions | type | possible_keys  | key         | key_len | ref | rows | filtered  | Extra       |
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+
|  1 | SIMPLE      | DemoTable1375 | NULL       | index | NULL          | FIRST_INDEX | 63      | NULL | 4    | 100.00   | Using index |
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+
1 row in set, 1 warning (0.03 sec)
 类似资料:
  • 我想运行一个复杂的HQL查询。我的一个参数是< code >集合 类似: spring甚至不能启动< code >???未映射 从表t中选择t,其中size((:codes)) = 0或t.code IN (:codes) 和许多其他人 是否有一种通用方法可以进行此检查并使此查询在不完全构建查询的情况下工作?

  • 我有这三个字符串: 我如何检查这些字符串中哪一个只包含字母还是只包含数字(用R表示)? 只能在字母检查中为TRUE 它对很有效,但对也很有效,这是我不想要的。 提前谢了。

  • 我正在开发一个GraphQL API,其中有一个带有初步数据比较的导入特性(在现有数据之间 电流为: API使用者执行GQL查询查询预览导入($数据:字符串),其中,是base64编码的电子表格。在后端解析数据,并在数据库中插入一条guid为的记录。最后,API返回电子表格中的数据与数据库中的数据以及guid之间的差异结果 前端然后要求用户在看到比较(创建、更新、删除)后确认导入。为此,向API发

  • 问题内容: 我有以下两个查询: 查询执行计划统计信息:( 相对于批次的查询成本) 查询1(子查询):56% 查询#2(加入):44% 我认为子查询是最佳的,因为子查询将在应用WHERE筛选器后执行。统计数据表明,Query#2-JOIN方法更好。 请建议。另外,作为SQL Server中级用户,我如何得出哪个查询更好(如果有帮助的话,除执行计划外,其他都可以) 谢谢你。 问题答案: 连接比子查询快

  • 问题内容: PHP是编译还是解释? 问题答案: PHP是一种解释型语言。可以解释PHP的二进制文件已编译,但是您编写的文件却被解释。

  • 问题内容: 我知道我们可以进行相关的子查询并加入。但是哪一个更快?有黄金法则还是我必须同时衡量这两者? 问题答案: 首先,相关子查询实际上是联接的一种。关于哪一个产生最佳执行计划没有黄金法则。如果您对性能感兴趣,则需要尝试不同的表格以查看最有效的方法。或者,至少,看看执行该决定的执行计划。 通常,出于两个原因,我倾向于避免关联子查询。首先,几乎总是可以在没有相关性的情况下编写它们。其次,许多查询引