MySQL EXPLAAIN
这里写自定义目录标题
- 1.EXPLAIN简介
- 2.EXPLAIN输出格式
- 2.1 EXPLAIN 包含的列
- 2.2 id列
- 2.3 select_type
- SIMPlE
- PRIMARY
- SUBQUERY
- DERIVED
- DEPENDENT SUBQUERY
- UNION & UNION RESULT
- 2.4 table
- 2.5 type
- 2.6 Extra
- 3. 问答
- 3.1 EXPLAIN不总是说出真相?
- 3.2 EXPLAIN时MySQL不会执行查询?
- 附录
- 建表语句
- 参考文献
1.EXPLAIN简介
EXPLAIN语句用来获取MySQL的执行计划,可被用于SELECT、DELETE、INSERT、REPLACE以及UPDATE语句。利用EXPLAIN语句可以获取到表的读取顺序、索引的使用情况等信息,需要注意的是,EXPLAIN输出的仅是近似结果。
EXPLAIN的使用方法:在SQL前添加EXPLAIN即可,例如:
# No.1
explain select distinct title from blog;
输出:
id | select_type | table | partition | type | possible_key | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | blog | ALL | 10143 | 100 | Using temporary |
输出的行以MySQL实际的执行顺序出现,与SQL的语序不一定相一致。
**本文基于MySQL5.7,所使用的表有blog、article、comment、author。含义如下:每个作者有多个博客,博客下面包含了许多文章,每篇文章包含若干评论。上述四张表分别有1w、10w、100w、1k条数据。**详细SQL见文末附录。
2.EXPLAIN输出格式
2.1 EXPLAIN 包含的列
列名 | 含义 |
---|---|
id | SELECT 序号 |
select_type | SELECT 类型 |
table | 该行输出所涉及的表,表的意义比较广泛:可以是一个子查询、一个UNION结果等等 |
partition | 匹配的分区 |
type | 访问类型,表示MySQL如何查找table中的记录 |
possible_key | 揭示哪些索引有助于高效的查询 |
key | MySQL最终决定采用哪些索引来最小化查询成本,并不一定是possible_key中的索引 |
key_len | 所使用索引部分的字节长度,与编码有关 |
ref | 在Key列执行查询所使用的常量、列 |
rows | 预估的扫描行数,利用表的统计信息和索引的选择得出,并不精确也并不是指结果集的行数 |
filtered | rows列中符合WHERE、JOIN等过滤条件的记录所占百分比的悲观估计,其值与rows相乘表示要与下表连接的行数 |
Extra | 额外信息 |
2.2 id列
id列用以标记SELECT,在嵌套查询中SELECT会顺序编号,id对应其在SQL中的位置,id越大的查询越先被执行。
id可能为null,比如当该行是UNION结果时。由于UNION结果总是放在匿名临时表中,并不在原始SQL中出现,所以ID为NULL。
如果SQL语句中没有复杂查询,那么所有SELECT的id都为1。
2.3 select_type
MySQL中SELECT类型分为:简单查询、复杂查询,复杂查询细分为:简单子查询、派生表和UNION查询。
- 子查询:嵌套在其它查询中的查询
- 简单子查询:在SELECT或者WHERE子句中的子查询
- 派生表:FROM子句中的子查询,由于该临时表由子查询派生而来,故称派生表
select_type的取值如下:
SIMPlE
简单查询,不包含子查询和UNION的查询语句。例如:No.1 SQL,以及下面的IN查询。
# No.2 in型子查询,查询作者所收到的所有评论
EXPLAIN SELECT comment FROM comment WHERE article_id IN (SELECT id FROM article WHERE author_id = 2);
id | select_type | table | partition | type | possible_key | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | comment | ALL | 997233 | 100 | ||||||
1 | SIMPLE | article | eq_ref | PRIMARY | PRIMARY | 4 | explain_demo.comment.article_id | 1 | 10 | Using where |
PRIMARY
复杂查询的最外层被标记位PRIMARY。
SUBQUERY
简单子查询,位于在SELECT或者WHERE子句中的子查询,会被标记为SUBQUERY。
# No.3 where型子查询,根据作者名查询其发表的所有文章名。
EXPLAIN SELECT title FROM article WHERE author_id = (SELECT id FROM author WHERE name = 'name_no_1');
id | select_type | table | partition | type | possible_key | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | PRIMARY | article | ALL | 100069 | 10 | Using where | |||||
2 | SUBQUERY | author | ALL | 1001 | 10 | Using where |
DERIVED
MySQL在执行FROM型的子查询时,会在生成一个临时表,并由外层查询引用,所以必须指定别名。该表是由子查询派生而来,故称派生表。
# No.4 统计每个作者的文章数
SELECT name, article_sum FROM (SELECT author_id, sum(1) article_sum FROM article GROUP BY author_id) ar INNER JOIN author au ON ar.author_id = au.id;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | PRIMARY | au | NULL | ALL | PRIMARY | NULL | NULL | NULL | 1001 | 100 | NULL |
1 | PRIMARY | <derived2> | NULL | ref | <auto_key0> | <auto_key0> | 4 | explain_demo.au.id | 99 | 100 | NULL |
2 | DERIVED | article | NULL | ALL | NULL | NULL | NULL | NULL | 99720 | 100 | Using temporary; Using filesort |
在EXPLAIN结果中,结果在前面的是JOIN查询的驱动表。
DEPENDENT SUBQUERY
相关子查询的执行依赖于外部查询。多数情况下是子查询的WHERE子句中引用了外部查询的表。
# No.5 exists型子查询,查询未发表过文章的作者
EXPLAIN SELECT au.id FROM author au WHERE NOT exists(SELECT 1 FROM article ar WHERE au.id = ar.author_id );
id | select_type | table | partition | type | possible_key | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | PRIMARY | au | index | PRIMARY | 4 | 1001 | 100 | Using where; Using index | |||
2 | DEPENDENT SUBQUERY | ar | ALL | 100069 | 10 | Using where |
# No.6 统计每个作者发表的文章总数
EXPLAIN SELECT au.id, (SELECT count(*) FROM article ar WHERE ar.author_id = au.id ) FROM author au;
id | select_type | table | partition | type | possible_key | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | PRIMARY | au | index | PRIMARY | 4 | 1001 | 100 | Using index | |||
2 | DEPENDENT SUBQUERY | ar | ALL | 100069 | 10 | Using where |
相关子查询的执行过程:
- 从外层查询中取出一个元组,将元组相关列的值传给内层查询。
- 执行内层查询,得到子查询操作的值。
- 外查询根据子查询返回的结果或结果集得到满足条件的行。
- 然后外层查询取出下一个元组重复做步骤1-3,直到外层的元组全部处理完毕。
UNION & UNION RESULT
在UNION的第二个及以后的SELECT被标记为UNION,UNION结果放在匿名临时表中,UNION的结果被标记为UNION RESULT。
# No.7 查询id=1作者的博客、文章的标题(去重)
EXPLAIN SELECT title FROM article WHERE author_id = 1 UNION SELECT title FROM blog WHERE author_id =1;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | PRIMARY | article | NULL | ALL | NULL | NULL | NULL | NULL | 99720 | 10 | Using where |
2 | UNION | blog | NULL | ALL | NULL | NULL | NULL | NULL | 10143 | 10 | Using where |
NULL | UNION RESULT | <union1,2> | NULL | ALL | NULL | NULL | NULL | NULL | NULL | NULL | Using temporary |
2.4 table
表示当前行正在访问的表,显示表名或者别名。当访问的是临时表时:
- <derived
N
>表示访问的是ID为N的派生表,N执行EXPLAIN的下一行; - <union
M
,N
>表示当前UNION RESULT正在访问ID为M和N的并集;
2.5 type
type列显示了MySQL的访问类型,即如何查找表中的行。性能从从最优到最差分别为:
null
const、system
const发生在直接按照主键或者唯一键的完整部分进行读取,且表中最多只有一个匹配行,优化器在后续步骤中,可以将该行中的值视为常量。
# No.8
EXPLAIN SELECT * FROM article WHERE id = 1;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | article | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100 | NULL |
eq_ref
索引查找,在使用主键或者唯一键的完整部分进行连接查询时,对于前一个表中的每一行记录,当前表只会存在一条符合条件的记录。eq_ref是除外const之外最好的访问类型,MySQL在查找到匹配行后无需继续查找。eq_ref不会出现在简单查询中。
# No.9
EXPLAIN SELECT title, content, name FROM article LEFT JOIN author ON article.author_id = author.id WHERE title = 'x';
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | article | NULL | ALL | NULL | NULL | NULL | NULL | 92631 | 10 | Using where |
1 | SIMPLE | author | NULL | eq_ref | PRIMARY | PRIMARY | 4 | explain_demo.article.author_id | 1 | 100 | NULL |
ref
相较于eq_ref,当前表满足匹配条件的记录有多条,因此,ref是索引查找和扫描混合体。在使用非唯一索引或者唯一索引的非唯一前缀时发生,ref也可以出现在使用=或<=>对索引进行比较时。
之所以叫ref,是因为要将索引和某个参考值进行比较,参考值来源于常数或者多表查询中前一个表的结果值。
# No.10 简单查询,使用非唯一索引
EXPLAIN SELECT * FROM article WHERE author_id = '';
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | article | NULL | ref | author_id | author_id | 4 | const | 98 | 100 | NULL |
# No.11 关联查询
EXPLAIN SELECT * FROM article LEFT JOIN author ON article.author_id = author.id WHERE name = '';
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | author | NULL | ALL | PRIMARY | NULL | NULL | NULL | 1001 | 10 | Using where |
1 | SIMPLE | article | NULL | ref | author_id | author_id | 4 | explain_demo.author.id | 90 | 100 | NULL |
index_merge
索引合并优化,对同一个表的多个索引同时进行条件扫描,并将结果进行合并。常见于WHERE涉及多个字段,并且其之间的关系是AND或者OR的关系。index_merge有三种类型:
- intersect:对多个扫描结果取交集,其WHERE条件是AND关系;
- union:对多个扫描结果取并集,其WHERE条件是OR关系;
- sort_union:对多个扫描结果,先排序,再取并集,其WHERE条件是OR关系,但union并不适用的场景下。
当出现intersect时按时索引有进一步优化的空间,可以通过复合索引进行优化。
# No.12 OR两侧分别为主键和非唯一索引
EXPLAIN SELECT * FROM article WHERE id = 1 OR author_id = 3;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | article | NULL | index_merge | PRIMARY,author_id | PRIMARY,author_id | 4,4 | NULL | 112 | 100 | Using union(PRIMARY,author_id); Using where |
range
有范围的索引扫描,其开始于索引的某一个点,并扫描所有符合条件的行。出现于WHERE中 >、betwenn等场景。
相较于完整的索引扫描,range的优势在于不需要遍历全部索引。
# No.13
EXPLAIN SELECT * FROM article WHERE id < 10;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | article | NULL | range | PRIMARY | PRIMARY | 4 | NULL | 9 | 100 | Using where |
index
索引树扫描,与全表扫描类似,不同的是index是按照索引的次序对表进行扫描而不是按行。index一般有情况:
- Using index:使用了覆盖索引,此时只需扫描索引树,其开销远小于全表扫描,因为索引的数据一般小于表数据;
- 回表:扫描索引树,并回表以获取所有数据。此时,随机访问会产生较大的开销。优点是,省略了排序成本。
# No.14
EXPLAIN SELECT id, author_id FROM article;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | article | NULL | index | NULL | author_id | 4 | NULL | 92631 | 100 | Using index |
all
全表扫描,必须从头到尾的扫描整张表。但也有例外,譬如使用了LIMIT。
# No.15
EXPLAIN SELECT * FROM author;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | author | NULL | ALL | NULL | NULL | NULL | NULL | 1001 | 100 | NULL |
2.6 Extra
显示一些额外信息,常见的有:
Using index
使用了覆盖索引,辅助索引已经可以满足SELECT所查询的列,无需回表。例如SQL No.14。
Using where
MySQL执行器将会对存储引擎返回的行进行进一步的过滤。
Using temporary
MySQL使用临时表来保存查询的中间结果。典型的场景有:
- 对不同的列使用了ORDER BY和GROUP BY
- 对非索引列使用了distinct
- 派生表,FROM型子查询
# No.15 content无索引
EXPLAIN SELECT DISTINCT content FROM article;
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | article | NULL | ALL | NULL | NULL | NULL | NULL | 92631 | 100 | Using temporary |
Using filesort
对结果使用外部排序,而不是按索引次序。外排可以在内存或者硬盘上完成。
Using MRR
MRR(Multi-Range Read Optimization,多范围读取优化)。从辅助索引进行回表会产生大量的随机IO,MySQL对需要回表的ID进行排序,然后使用排序后的ID对表(聚集索引)进行顺序访问。
Using index condition
索引下推,在利用辅助索引进行查询时,可以将部分查询条件从Server层下推到存储引擎层,减少回表次数。
譬如,有abc联合索引,WHERE a = xxx AND c = yyy,对于不符合最左前缀的c部分,可以利用ICP在存储引擎层进行过滤。
3. 问答
3.1 EXPLAIN不总是说出真相?
EXPLAIN只是个近似结果,例如:
- 不会显示执行计划的所有信息
- 对一些事物不加详细的区分,譬如:对内存排序和硬盘排序都使用filesort
3.2 EXPLAIN时MySQL不会执行查询?
一般来说,EXPLAIN返回执行计划中每一步的信息,而不会真正去执行它。但也有例外,比如复杂查询中的派生表(FROM型子查询),MySQL需要首先去执行子查询。
附录
建表语句
# 准备测试数据
DROP DATABASE IF EXISTS explain_demo;
CREATE DATABASE explain_demo;
USE explain_demo;
CREATE TABLE blog
(id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255) NOT NULL,author_id INT NOT NULL
);
CREATE TABLE article
(id INT PRIMARY KEY AUTO_INCREMENT,blog_id INT NOT NULL,author_id INT NOT NULL,title VARCHAR(255) NOT NULL,content TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS comment
(id INT PRIMARY KEY AUTO_INCREMENT,article_id INT NOT NULL,comment VARCHAR(255) NOT NULL
);
CREATE TABLE author
(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL
);
ALTER TABLE article ADD INDEX author_id (author_id);
DELIMITER //
CREATE PROCEDURE prepare_data()
BEGINDECLARE blog_num INT DEFAULT 10000;DECLARE article_num INT DEFAULT 100000;DECLARE comment_num INT DEFAULT 1000000;DECLARE author_num INT DEFAULT 1001;DECLARE i INT;SET i = 0;WHILE i < blog_num DOSET i = i + 1;INSERT INTO blog (id, title, author_id) VALUES (i, concat('blog_no_', i), 1 + floor(rand() * (author_num)));END WHILE;SET i = 0;WHILE i < article_num DOSET i = i + 1;INSERT INTO article (id, blog_id, author_id, title, content)VALUES (i, floor(rand() * (blog_num)),floor(rand() * (author_num)), concat('article_no_', i), concat('content_no_', i));END WHILE;SET i = 0;WHILE i < comment_num DOSET i = i + 1;INSERT INTO comment (id, article_id, comment) VALUES (i, floor(rand() * (author_num)), concat('comment_no_', i));END WHILE;SET i = 0;WHILE i < author_num DOSET i = i + 1;INSERT INTO author (id, name, password) VALUES (i, concat('name_no_', i), concat('password_no_', i));END WHILE;
END //
DELIMITER ;
CALL prepare_data();
参考文献
MySQL 5.7 Reference Manual - EXPLAIN Output Format
mysql explain详解
MySQL 优化之 index merge(索引合并)
《高性能MySQL》
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Jsplumb基础教程(vue+jsplumb+d3)
目前github社区存在几款可用于设计流程图的绘图框架:go.js( http://www.gojs.net/latest/index.html) :go.js 提供一整套的JS工具 ,支持各种交互式图表的创建;目前go.js 是闭源收费的 jsPlumb(https://jsplumbtoolkit.com/): jsPlumb是一套开源的流程图创建工具 ,小巧精悍…...
2024/4/15 3:16:39 - Python当中str与time类型相互转化
str 转 time 类型 import timedate_time_str = "2020/02/08 15:23:44" # Transform into time array # The second parameter can be in any time format date_time = time.strptime(date_time_str , "%Y/%m/%d %H:%M:%S")上述代码会将字符串转化为time数组…...
2024/4/21 10:35:05 - 牛客-剑指offer系列题解:正则表达式匹配 (动态规划)
1、题目描述:2、题解: 见这篇博客动态规划:力扣10. 正则表达式匹配...
2024/4/24 14:20:51 - 面试前必须要知道的21道Redis面试题
面试前必须要知道的21道Redis面试题...
2024/4/30 14:28:33 - DAN序列
import java.util.Scanner; //DAN序列,找出给定序列中GC-Ratio最高的子序列 public class Main_201 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {String string = scanner.nextLine();String[] str = stri…...
2024/5/8 10:53:46 - 13分钟入门pandas(八):重塑(Reshaping)
(1)stack,使用stack方法可以把标签压进所在的列中(2)unstack , 逆操作将标签从列中取出来使用unstack()(3)数据透视表...
2024/4/25 23:08:09 - STL标准库和算法
文章目录1、C++ STL 简介STL 介绍容器算法迭代器适配器仿函数空间配置器2、template 编程和迭代器粗解3、迭代器4、函数对象(仿函数)5、算法6、基础容器之 vector7、基础容器之 list8、基础容器之 deque9、容器适配器10、容器之 set 和 multiset11、容器之 map 和 multimap12…...
2024/5/6 15:45:12 - [笔记]常见排序算法的Python实现和性能整理
...
2024/4/24 14:20:45 - 维特比算法(viterbi)原理以及简单实现
维特比算法 看一下维基百科的解释,维特比算法(Viterbi algorithm)是一种动态规划算法。它用于寻找最有可能产生观测事件序列的维特比路径——隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。 通俗易懂的解释知乎有很多,如:如何通俗地讲解 viterbi 算法?…...
2024/4/28 14:34:17 - OC如何访问对象的属性
如何访问对象的属性默认情况下,对象的属性是不允许外界直接访问的,如果允许对象的属性可以被外界访问,那么需要在声明属性的时候加@public关键字。 访问对象属性的方式: 对象名->属性名 = 值; 对象名->属性名; 也可以(*对象名).属性名; 但平时最好使用->#import…...
2024/5/3 18:30:46 - C# 菜鸟教程的补充—— 数组型数据结构
教程地址:https://www.runoob.com/csharp/csharp-tutorial.html 1. 数组型数据结构对比 Array,ArrayList,List对比:数据结构ArrayArrayListList长度定长Array.Length不定长ArrayList.Count不定长List.Count增不支持ArrayList.AddList.Add删不支持ArrayList.RemoveList.Remo…...
2024/4/24 6:52:59 - docker-compose 搭建 redis 集群
docker-compose 搭建 redis 集群 前言 在工作的时候,使用了 redis 的脚本功能,据说对集群的支持不是很好,于是想要试一下在集群环境到底怎么用。由于公司电脑没有虚拟机,只有 docker, 于是就开始跟着菜鸟教程准备开始搭建。 环境 windows10, docker 三件套 正文 下载镜像…...
2024/5/4 3:51:05 - # This 关键字的用法总结
This 关键字的用法总结 1 this 介绍 2 调用本类方法 3 调用本类中的成员变量 4 this 和 super 的比较 1 this介绍 this: this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 2 调用本类方法 package l;public class Chinese { //Chinese类继承Perso…...
2024/4/26 0:49:19 - GPU的相似性检查(PNSR和SSIM)
英文原文链接 文章目录目的源码怎么做呢?- - - GPU优化结果与结论 目的 在 视频输入和相似性度量 教程中,我已经介绍了用于检查两幅图像之间相似性的 PSNR(峰值信噪比) 和SSIM(结构相似度算法) 方法。正如您所看到的,执行过程花费了相当长的时间,尤其是在SSIM的情况下。…...
2024/4/28 14:58:21 - 一篇文章带你学会 Linux 中的 Vi 和 Vim 编辑器的使用
文章目录一、Vim 编辑器二、重定向输出 > 和 >>三、系统管理命令四、管道 | 一、Vim 编辑器 在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。 切换到命令行模式:按Esc键; 切换到插入模式:按 i 、o、a键…...
2024/5/3 2:02:21 - 深度学习论文
在GPU上运行的backbone : VGG ResNet ResNeXt DenseNet 在CPU上运行的backbone : SqueezeNet MobileNet ShuffleNet 深度学习的neck 结构 Feature Pyramid Network (FPN) Path Aggregation Network (PAN) BiFPN NAS-FPN 普通的物体探测器由几个部分:Input: Image, Patche…...
2024/4/24 14:20:38 - 编码神器-IDEA 从入门到精通
IDEA开发工具 一、编码神器-IDEA (一)IDEA介绍[了解] l 官网:http://www.jetbrains.com/idea/download/#section=windows l 官网教程: https://www.jetbrains.com/help/idea/install-and-set-up-product.html l 百科介绍l IDEA是 JetBrains 公司的产品,公司旗下还有其它产品…...
2024/5/1 17:16:51 - C# 菜鸟教程的补充—— Collections和Generic
教程地址:https://www.runoob.com/csharp/csharp-tutorial.html 2. Collections和GenericSystem.Collections与System.Collections.Generic的区别在于:Collections确定了数据结构,确定这种结构能做出怎样的动作,适用怎样的场景。而Generic填充了数据结构的血肉,针对不同数…...
2024/5/4 23:33:26 - Redis 简明教程
1、Redis 安装介绍 2、Redis 数据类型 3、Redis 系统管理 4、Redis 高级应用...
2024/4/24 19:18:29 - javascript 匿名函数的使用场景(sort ,filter,every,find)
浏览器运行结果:...
2024/4/29 0:09:49
最新文章
- 虹科Pico汽车示波器 | 免拆诊断案例 | 2010款凯迪拉克SRX车发动机无法起动
故障现象 一辆2010款凯迪拉克SRX车,搭载LF1发动机,累计行驶里程约为14.3万km。该车因正时链条断裂导致气门顶弯,大修发动机后试车,起动机运转有力,但发动机没有着机迹象;多起动几次,火花塞会变…...
2024/5/8 22:13:23 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - Linux mount用法
在Linux系统中,系统自动挂载了以下挂载点: /: xfs文件系统,根文件系统, 所有其他文件系统的挂载点。 /sys: sysfs文件系统,提供内核对象的信息和接口。 /proc: proc文件系统,提供进程和系统信息。 /dev: devtmpfs文件系…...
2024/5/5 8:38:45 - app上架-您的应用存在最近任务列表隐藏风险活动的行为,不符合华为应用市场审核标准。
上架提示 您的应用存在最近任务列表隐藏风险活动的行为,不符合华为应用市场审核标准。 修改建议:请参考测试结果进行修改。 请参考《审核指南》第2.19相关审核要求:https://developer.huawei.com/consumer/cn/doc/app/50104-02 造成原因 …...
2024/5/8 2:37:20 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/8 20:48:49 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/8 19:33:07 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/8 20:38:49 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57