mysql 索引_MySQL之索引

0c6cc9079be7174fb92e390022014288.gif

索引查找算法BTREE

BTREE查找算法演变B-TREE :普通 BTREE,平衡多路查找树(B-Tree)B+TREE :叶子节点双向指针B++TREE(B*TREE):枝节点的双向指针

普通B-TREE

c95c76ae50ecb62a7da485e1180eed8e.png

增强版B+TREE(B*TREE)

149d116a51a3ba622299e3cf0f68d4dd.png

总结:从上图看出,在B+Tree上有两个头指针,一个指向根节点,另一个指向关键字最小的叶子节点,而且所有叶子节点(即数据节点)之间是一种链式环结构。B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构。从上图中的B-Tree结构图中可以看到每个节点中不仅包含数据的key值,还有data值。而每一个页的存储空间是有限的,如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,当存储的数据量很大时同样会导致B-Tree的深度较大,增大查询时的磁盘I/O次数,进而影响查询效率。在B+Tree中,所有数据记录节点都是按照键值大小顺序存放在同一层的叶子节点上,而非叶子节点上只存储key值信息,这样可以大大加大每个节点存储的key值数量,降低B+Tree的高度。而BTree,这个是以B+Tree为基础,在非叶子结点(枝节点)上增加了链表指针,BTree的空间利用率更高。

MySQL中如何使用BTREE

1 聚簇索引

聚簇索引也叫集群索引,聚集索引。它不是一种单独的索引类型,而是一种数据存储方式。Innodb的聚簇索引实际上在同一个结构中保存了B*Tree索引和数据行。当表有聚簇索引时,数据行实际上存储在索引的叶子节点中。聚簇的意思是表示数据行和相邻的键值紧凑地存储在一起。一个表只能有一个聚簇索引。也就是按照每张表的主键构成一棵B+树,叶子节点中存放整张表的行记录数据,也将聚集索引的叶子节点成为数据页,每个数据页之间通过一个双向链表来进行链接。数据页存放的是每行的所有记录,非数据页存放的是键值和指向数据页的偏移量。它可以在叶子节点直接找到数据,且对于主键的排序查找和范围查找速度非常快,因为聚集索引是逻辑上连续的。比如查询后10条数据,由于B+树索引是双向链表,可以很快找到随后一个数据页,然后取出最后的10条数据。

①前提条件

1.如果表中设置了主键(例如ID列),自动根据ID列生成索引树。2.如果没有设置主键,自动选择第一个唯一键的列作为聚簇索引3.如果没有唯一键,自动生成隐藏的聚簇索引。4.在建表时,推荐创建主键为数字自增列。

②功能

1.录入数据时,按照聚簇索引组织存储数据,在磁盘上有序存储数据行。2.加速查询(基于ID作为条件的判断查询)。

③聚簇索引的B*Tree构建过程

a. 叶子节点:存储数据行时就是有序的,直接将数据行的page作为叶子节点(相邻的叶子结点,有双向指针)b. 枝节点  :提取叶子节点ID的范围+指针,构建枝节点(相邻枝节点,有双向指针)c. 根节点  :提取枝节点的ID的范围+指针,构建根节点

8313463b70df424046647a2cef64bbf1.png

2 辅助索引

辅助索引需要人为创建辅助索引,将经常作为查询条件的列创建辅助索引,起到加速查询的效果。也称非聚集索引,按照每张表创建的索引列创建一棵B+树,叶子节点并不包含行记录的全部数据。叶子节点包含键值 和 书签,书签用来告诉InnoDB存储引擎在哪可以找到与索引对应的行数据,每张表可以有多个辅助索引。如果某个查询是通过辅助索引查找数据的,则查找过程为:先遍历辅助索引并找到叶节点找到指针获取主键索引的主键,然后通过主键索引找到对应的页从而找到一个完整的行记录。注:没执行一次查询就是一次IO,比如 辅助索引树高度为3,聚集索引树高度为2,则通过辅助索引查询数据时就要进行3+2次逻辑IO最终得到一个数据页。

辅助索引的B*Tree 构建过程

a. 叶子节点:提取主键(ID)+辅助索引列,按照辅助索引列进行从小到大排序后,生成叶子节点。(多个辅助索引列,以最左边的列为标准。相邻的叶子结点,有双向指针。)b. 枝节点  :提取叶子节点辅助索引列的范围+指针,构建枝节点(相邻枝节点,有双向指针)c. 根节点  :提取枝节点的辅助索引列的范围+指针,构建根节点

89e25e582f3b130c38175db32ecdf5f3.png

辅助索引查询过程:

# 按照辅助索引列,作为查询条件时。1. 查找辅助索引树,得到ID值2. 拿着ID值回表(聚簇索引)查询

①单列索引

只拿一个非主键列来创建索引,如下:

# 单列辅助索引 select * from test.t100w where k2='780P' # 优化方式: alter table 表名 add index 索引名(列名); mysql> alter table t100w add index idx_k2(k2);

②联合索引

# 使用多个非主键列创建辅助索引mysql> alter table t100w add index idx_k1_num(k1,num);

③前缀索引

列值长度越长,数据量大的话,会影响到索引高度,需要使用前缀索引,也就是截取列值的前缀生成新的索引以提高效率。

# 判断前缀长度多少合适:截取字符串之后得到的总记录数越接近截取之前的越好,说明前缀的唯一性高!select count(distinct(left(name,5)))  from city ;select count(distinct name)  from city ;# 创建前缀索引mysql> alter table city add index idx_n(name(5)); # 删除索引mysql> alter table city drop index idx_n;

关于索引的相关问题

1 回表问题

# 关于辅助索引回表是什么?回表会带来什么问题?怎么减少回表?a. 回表:按照辅助索引列作为查询条件时,先查找辅助索引树,再到聚簇索引树查找数据行的过程。b. 影响:IO量多、IO次数多、随机IO会增多c. 减少回表:  1. 辅助索引能够完全覆盖查询结果,可以使用联合索引。  2. 尽量让查询条件精细化,尽量使用唯一值多的列作为查询条件  3. 优化器:MRR(Multi-Range-Read), 锦上添花的功能。         mysql> select @@optimizer_switch;         mysql> set global optimizer_switch='mrr=on';功能:(1)辅助索引查找后得到ID值,进行自动排序(2)一次性回表,很有可能受到B+TREE中的双向指针的优化查找。

2 索引树高度的影响因素

a. 高度越低越好b. 数据行越多,高度越高。   1. 分区表。一个实例里管理。基本不再使用了!   2. 按照数据特点,进行归档表。   3. 分布式架构。针对海量数据、高并发业务主流方案。   4. 在设计方面,满足三大范式。c. 主键规划:长度过长。   1. 主键,尽量使用自增数字列。   d. 列值长度越长,数据量大的话,会影响到高度。   1. 使用前缀索引   比如列值长100字符,那么只取前10个字符,构建索引树。 e. 数据类型的选择。   选择合适的、简短的数据类性。   例如:   1. 存储人的年龄  ,使用 tinyint 和 char(3)哪个好一些   2. 存储人名,char(20)和varchar(20)的选择哪一个好。      a. 站在数据插入性能角度思考,应该选:char          b. 从节省空间角度思考,应该选:varchar      c. 从索引树高度的角度思考,应该选:varchar结论:建议使用varchar类型存储变长列值

创建索引

查询表索引

mysql> desc city;+-------------+----------+------+-----+---------+----------------+| Field       | Type     | Null | Key | Default | Extra          |+-------------+----------+------+-----+---------+----------------+| ID          | int(11)  | NO   | PRI | NULL    | auto_increment || Name        | char(35) | NO   | MUL |         |                || CountryCode | char(3)  | NO   | UK |         |                || District    | char(20) | NO   |     |         |                || Population  | int(11)  | NO   |     | 0       |                |+-------------+----------+------+-----+---------+----------------+5 rows in set (0.00 sec) PK     --> 主键(聚簇索引)     MUL    --> 辅助索引   UK     --> 唯一索引  mysql> show index from city;+-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| Table | Non_unique | Key_name    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |+-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+| city  |          0 | PRIMARY     |            1 | ID          | A         |        4188 |     NULL | NULL   |      | BTREE      |         |               || city  |          1 | CountryCode |            1 | CountryCode | A         |         232 |     NULL | NULL   |      | BTREE      |         |               || city  |          1 | idx_name    |            1 | Name        | A         |        3554 |        5 | NULL   |      | BTREE      |         |               |+-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ # Cardinality值越大,索引优先级越高。

创建索引

# 单列辅助索引 select * from test.t100w where k2='780P'; # 该表没有索引,大量数据查询耗时极大,需要优化! 优化方式:语法:alter table 表名 add index 索引名(列名);  alter table t100w add index idx_k2(k2); # 联合索引创建 mysql> alter table t100w add index idx_k1_num(k1,num); # 前缀索引创建# 判断前缀长度多少合适:select count(distinct(left(name,5)))  from city ;select count(distinct name)  from city ;# 创建前缀索引mysql> alter table city add index idx_n(name(5)); # 删除索引alter table city drop index idx_n;

执行计划获取和分析

1 执行计划工具

# 获取语句的执行计划工具  explain   des# 使用方法 :mysql> desc select * from city where countrycode='CHN';mysql> explain  select * from city where countrycode='CHN';+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+|  1 | SIMPLE      | city  | NULL       | ref  | CountryCode   | CountryCode | 3       | const |  363 |   100.00 | NULL  |+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+

2 执行计划信息

table         :此次查询访问的表type          :索引查询的类型(ALL、index、range、ref、eq_ref、const(system)、NULL)possible_keys :可能会应用的索引key           : 最终选择的索引key_len       :索引覆盖长度,主要是用来判断联合索引应用长度。rows          :需要扫描的行数Extra         :额外信息

3 Type信息详解

代价从高到低!

  • ALL

# 没有使用到索引a. 查询条件没建立索引# district并没有被创建成辅助索引mysql> desc select * from city where district='shandong';+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra       |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+|  1 | SIMPLE      | city  | NULL       | ALL  | NULL          | NULL | NULL    | NULL | 4188 |    10.00 | Using where |+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+1 row in set, 1 warning (0.00 sec) b. 有索引不走# 这三种查询不走索引mysql> desc select * from city where countrycode!='CHN';mysql> desc select * from city where countrycode not in ('CHN','USA');mysql> desc select * from city where countrycode like '%CH%';
  • index

# 全索引扫描 mysql> desc city;+-------------+----------+------+-----+---------+----------------+| Field       | Type     | Null | Key | Default | Extra          |+-------------+----------+------+-----+---------+----------------+| ID          | int(11)  | NO   | PRI | NULL    | auto_increment || Name        | char(35) | NO   | MUL |         |                || CountryCode | char(3)  | NO   | MUL |         |                || District    | char(20) | NO   |     |         |                || Population  | int(11)  | NO   |     | 0       |                |+-------------+----------+------+-----+---------+----------------+5 rows in set (0.00 sec) mysql> desc select countrycode from city;+----+-------------+-------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+| id | select_type | table | partitions | type  | possible_keys | key         | key_len | ref  | rows | filtered | Extra       |+----+-------------+-------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+|  1 | SIMPLE      | city  | NULL       | index | NULL          | CountryCode | 3       | NULL | 4188 |   100.00 | Using index |+----+-------------+-------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+1 row in set, 1 warning (0.00 sec) # 由于country是辅助索引,这里查询会遍历扫描索引,效率也是一种问题。
  • range

从这里开始,我们可以接受这些类型的索引查询,但是无法容忍上述两种!

# 索引范围扫描# 会受到:B+TREE额外优化,叶子节点双向指针# >、=、<=、in、or、between and、likemysql> desc select * from city where id<10;mysql> desc select * from city where countrycode like 'CH%';+----+-------------+-------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+| id | select_type | table | partitions | type  | possible_keys | key         | key_len | ref  | rows | filtered | Extra                 |+----+-------------+-------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+|  1 | SIMPLE      | city  | NULL       | range | CountryCode   | CountryCode | 3       | NULL |  397 |   100.00 | Using index condition |+----+-------------+-------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+1 row in set, 1 warning (0.00 sec) # 这种情况下,主键索引性能还可以,如果查询条件是辅助索引,就会牵扯到回表次数问题而导致性能较低。 # 以下两种查询,大几率受不到叶子节点双向指针优化。# 他会遍历两个值之间的数据,而这种遍历是没有必要的!mysql> desc select * from city where countrycode in ('CHN','USA');mysql> desc select * from city where countrycode='CHN' or countrycode='USA'; # 建议:如果查询列重复值少的话,我们建议改写为 union all (2-3个,如果超过50%,那就没什么卵用了!)desc select * from city where countrycode='CHN'union allselect * from city where countrycode='USA';+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+|  1 | PRIMARY     | city  | NULL       | ref  | CountryCode   | CountryCode | 3       | const |  363 |   100.00 | NULL  ||  2 | UNION       | city  | NULL       | ref  | CountryCode   | CountryCode | 3       | const |  274 |   100.00 | NULL  |+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+2 rows in set, 1 warning (0.00 sec)
  • ref

# 辅助索引等值查询desc select * from city where countrycode='CHN';+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra |+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+|  1 | SIMPLE      | city  | NULL       | ref  | CountryCode   | CountryCode | 3       | const |  363 |   100.00 | NULL  |+----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-------+1 row in set, 1 warning (0.00 sec) # 等值查询的代价比range就要低很多了。

  • eq_ref

# 多表连接查询中,非驱动表的连接条件是主键或唯一键时。mysql> desc select city.name,country.name from city left join country on city.countrycode=country.code where city.population<100;# 在非驱动表country中code是主键,在多表连接中如果显示未eq_ref,那就是最佳的优化实践,也是性能最好的一种场景。这也是多表连接中非驱动表的优化方向。驱动表后续会介绍。+----+-------------+---------+------------+--------+---------------+---------+---------+------------------------+------+----------+-------------+| id | select_type | table   | partitions | type   | possible_keys | key     | key_len | ref                    | rows | filtered | Extra       |+----+-------------+---------+------------+--------+---------------+---------+---------+------------------------+------+----------+-------------+|  1 | SIMPLE      | city    | NULL       | ALL    | NULL          | NULL    | NULL    | NULL                   | 4188 |    33.33 | Using where ||  1 | SIMPLE      | country | NULL       | eq_ref | PRIMARY       | PRIMARY | 3       | world.city.CountryCode |    1 |   100.00 | NULL        |+----+-------------+---------+------------+--------+---------------+---------+---------+------------------------+------+----------+-------------+2 rows in set, 1 warning (0.00 sec) # 这个时候我们把population条件创建为一个辅助索引,驱动表走的索引就是range。这也是最好的一种优化了,没有别的方式比这个性能更好了,知足吧!mysql> alter table city add index idx_p(population);mysql> desc select city.name,country.name  from city  left join country  on city.countrycode=country.code where city.population<100;+----+-------------+---------+------------+--------+---------------+---------+---------+------------------------+------+----------+-----------------------+| id | select_type | table   | partitions | type   | possible_keys | key     | key_len | ref                    | rows | filtered | Extra                 |+----+-------------+---------+------------+--------+---------------+---------+---------+------------------------+------+----------+-----------------------+|  1 | SIMPLE      | city    | NULL       | range  | idx_p         | idx_p   | 4       | NULL                   |    1 |   100.00 | Using index condition ||  1 | SIMPLE      | country | NULL       | eq_ref | PRIMARY       | PRIMARY | 3       | world.city.CountryCode |    1 |   100.00 | NULL                  |+----+-------------+---------+------------+--------+---------------+---------+---------+------------------------+------+----------+-----------------------+2 rows in set, 1 warning (0.00 sec)
  • const(system)

# 主键或唯一键等值查询# 性能最好,只需回表一次,这是一种奢望!mysql> desc select * from city where id=1;+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+| id | select_type | table | partitions | type  | possible_keys | key     | key_len | ref   | rows | filtered | Extra |+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+|  1 | SIMPLE      | city  | NULL       | const | PRIMARY       | PRIMARY | 4       | const |    1 |   100.00 | NULL  |+----+-------------+-------+------------+-------+---------------+---------+---------+-------+------+----------+-------+1 row in set, 1 warning (0.00 sec)
  • NULL

# 查不到数据的时候性能最好!那我要你有何用!!!不用管了!!!mysql> desc select * from city where id=1000000000000000;

总结

通常最常见的执行计划类型是:range、ref、eq_ref。如果出现index或者all的情况,那就可能涉及到改写sql查询语句,或者得找业务沟通查询条件了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java数学计算表达式_Java初学者:内建函数计算简单的数学表达式

这个应该在之前写的&#xff0c;忘记了&#xff0c;补上这次我们说一下如何用java计算数学表达式的值&#xff0c;比如&#xff0c;我们要计算sin(pi/3) cos(pi/6) 5.6^3&#xff0c;怎么计算呢&#xff1f;这里我们需要用到java的math的内建函数&#xff0c;所谓内建函数&am…

谷歌新作gVisor:VM容器融合技术已经到来

作者&#xff5c;秦承刚&#xff0c;吴启翾&#xff0c;喻望&#xff0c;杨伟 编辑&#xff5c;张婵 出处丨高效开发运维 5 月 2 日&#xff0c;谷歌发布了一款新型的沙箱容器运行时 gVisor&#xff0c;号称能够为容器提供更安全的隔离&#xff0c;同时比 VM 更轻量。容器基于共…

安卓androidstudio访问本地接口_安卓开发之数据存储在本地的四种方式

​安卓开发之数据存储在本地的四种方式本地数据存储&#xff0c;在安卓开发过程中是不可避免的一个话题。这些本地的数据可能是用户的设置&#xff0c;程序的设置&#xff0c;用户的数据图片, 也可能是网络传输的一些缓冲数据。基本上我们有4种方法可以存储安卓程序的数据。第1…

java vector 线程安全_关于Vector到底是不是 线程安全的 问题

线程安全&#xff0c;在java的多并发编程中是重要概念&#xff0c;意思是&#xff0c;多个线程同时操作一个对象&#xff0c;在各种不同情况下&#xff0c;都不会造成不同的后果。一个经典问题&#xff0c;Vector到底是不是线程安全的&#xff1f;很多人都会回答&#xff0c;是…

C# Winform使用Windows Media Player播放多媒体整理

一、简单使用示例步骤 1.添加Windows Media Player 组件当前是系统的 Com组件 工具箱》右键“选择项”》选择Com组件 2.控件拖拽到桌面&#xff0c;使用 private void button1_Click(object sender, EventArgs e) {//播放开始声音axWindowsMediaPlayer2.URL "start.mp3&q…

618选购手机正当时,好评率高达99%的手机了解一下!

一年一度的京东618年中购物狂欢节如火如荼的进行中&#xff0c;手机厂商们都使出了浑身解数&#xff0c;对消费者进行争夺。对于用户来说&#xff0c;618绝对是更换手机的好时机。不过&#xff0c;小伙伴们面对市场上的众多机型&#xff0c;也有可能挑花了眼&#xff0c;不知道…

IntelliJ IDEA 2017.2 x64 安装Scala

从官网下载好IntelliJ IDEA 和scala IntelliJ IDEA 安装scala插件 新建scala项目 建好后&#xff0c;发现src右键--新建---没有 .scala选项 解决方法

Django-ORM数据库操作

背景 Django框架功能齐全自带数据库操作功能&#xff0c;由于工作中设计巨量的api接口&#xff0c;需要一个很好的web后端服务框架&#xff0c;Django给了莫大的帮助。本文主要介绍Django的ORM框架我们一般对数据库的使用的认识是&#xff1a; 创建数据库&#xff0c;设计表结构…

Kingback小组冲刺博客

一、6月13日 1、今日完成的任务 李可欣 项目首页的框架设计 项目首页的导航栏部分 对于项目的配色进行了改进&#xff0c;并且设计了logo 杨帆 今天进行了数据库的设计&#xff0c;完成了数据库的增删改查&#xff0c;并建立了两个jsp页面&#xff0c;还学习了一些数据库设计的…

使用Git上传本地项目到oschina

原文地址&#xff1a;https://my.oschina.net/158/blog/530112 --------------------------------------------- 1.首先看一下自己是否有公钥&#xff0c; 在 我的资料-->SSH公钥 查看&#xff0c;如果没有&#xff0c;添加自己的SSH 公钥&#xff1a; SSH key 可以让你在…

整数数组按绝对值排序

2019独角兽企业重金招聘Python工程师标准>>> 题目&#xff1a; 给出一组整数数组&#xff0c;要求按照绝对值从小到大进行排序后输出。 可以用经典的冒泡排序法来计算此问题&#xff0c;计算过程&#xff1a; 1、比较相邻两个元素绝对值&#xff0c;如果第一个比第二…

pearson相关系数_pearson相关系数与典型相关性分析(CCA)

本文主要介绍相关系数的概念&#xff0c;以及简单相关系数中的pearson相关系数及其局限性。随后介绍pearson相关系数无法解决的问题(两个变量组之间的相关性问题)的解决方案。1、pearson相关系数在日常中&#xff0c;我们经常会遇到一些关于相关性的分析&#xff0c;例如&#…

seo自动工具_爱站SEO工具包详细介绍

爱站SEO工具-seoer的瑞士军刀&#xff01;这个工具主要是为了方便SEOer查询一些网站的问题&#xff0c;监控关键词排名收录等等&#xff0c;新手老手都可以用的工具&#xff0c;更快的让SEOer上手。相信有很多SEOer都使用过爱站SEO工具包&#xff0c;也有很多新入行的小伙伴可能…

人物三(依芙蒂法)

转载于:https://www.cnblogs.com/song1900/p/9189921.html

XML文件结构和基本语法

XML文件的结构性内容&#xff0c;包括节点关系以及属性内容等等。元素是组成XML的最基本的单位&#xff0c;它由开始标记&#xff0c;属性和结束标记组成。就是一个元素的例子&#xff0c;每个元素必须有一个元素名&#xff0c;元素可以若干个属性以及属性值。 xml文件和html文…

fatal: Could not read from remote repository.的解决办法

原文地址&#xff1a;http://blog.csdn.net/huahua78/article/details/52330792 --------------------------------------------------------------------------------- 查看远端地址 git remote –v 查看配置 git config --list git status git add . // 暂存所有的更改git…

springmvc是什么_SpringBoot与SpringMVC的区别是什么?

简单的来说&#xff1a;SpringMVC和SpringBoot都是Spring家族的重要成员。Spring家族的使命就是为了简化而生。SpringMVC简化我们日常Web开发的&#xff0c;后来随着自身的发展&#xff0c;SpringMVC变得臃肿复杂&#xff0c;而SpringBoot则进一步简化了SpringMVC开发。SpringM…

git 上传代码到码云

与码云建立连接教程&#xff1a;http://blog.csdn.net/zengmingen/article/details/76045076 如果完成了上面步骤的&#xff0c;且有了git。上传项目步骤&#xff1a; 代码提交 代码提交一般有五个步骤&#xff1a; 1.查看目前代码的修改状态 2.查看代码修改内容 3.暂存需要提交…

visual studio过期登录不了账户_具有最高管理权限账户,Windows 7设置Administrator密码永不过期...

今天介绍操作系统具有最高管理权限的账户&#xff0c;Windows 7如何设置Administrator账户密码永不过期。小伙伴们可能不知道&#xff0c;和Windows Vista操作系统一样&#xff0c;在Windows 7操作系统中是不能预先使用Administrator这个具有最高管理权限的账户的。同时也可能不…

cad隐藏图层命令快捷键_cad快捷键f是什么命令?cad中f快捷键都有哪些?

1. F1 该功能键打开AutoCAD帮助窗口。如果用户遇到此软件中的任何功能问题,它可以使用户在线获得帮助。如果用户离线工作,而不是按此键,则该软件的所有功能都将以PDF格式打开。 2. F2 该键将打开一个弹出屏幕,在底部显示命令行。该命令对于在屏幕底部看不到命令窗口的用户很…