当前位置: 首页 > news >正文

MySQL 高级(2): 索引的概念,分类,性能分析

索引优化分析

索引的概念

  • MySQL 官方对索引的定义为:索引(Index)是帮助MySQL 高效获取数据的数据结构。 可以得到索引的本质:索引是数据结构。可以简单理解为排好序的快速查找数据结构。
  • 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。 下图就是一种可能的索引方式示例:
    在这里插入图片描述
    左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址。为了加快 Col2 的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指 针
    • 这样就可以运用二叉查找在一定的复杂度内获取到相应数据,从而快速的检索出符合条件的记录。
    • 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。

优缺点
优势:

  • 提高数据检索的效率,降低数据库的IO成本。
  • 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。

劣势:

  • 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。
  • 实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间的。

索引的结构

我们平时所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一定是二叉的)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。当然,除了B+树这种数据结构的索引之外,还有哈希索引(Hash Index)等。

Btree 查找树

概述

  • Btree又名 B- 树,是一种平衡的多路查找树,它可以利用多个分支节点(子树节点)来减少查询数据时所经历的节点数,从而达到节省存取时间的目的。
    下图是一个M=4 阶的B树:
    在这里插入图片描述

主要特点

  • 每个节点的key数量小于m个(与m-way相同)
  • 除根节点和叶子节点的其他节点存储key的个数必须大于等于m/2
  • 所有叶子节点都处于同一层,也就是说所有叶节点具有相同的深度h(树的高度,也意味着树是平衡的)

Btree的查找

  • 必须从根节点开始采用二分法查找,所以时间复杂度为O(logn)。

Btree的插入

  • 为了保证树的平衡,如果带插入节点的key数量小于m-1个,则直接插入(不会违反第一条特性),否则,需要将该节点分为两部分,再执行该操作。
    ·在这里插入图片描述
  • 下面是往B树中依次插入6 10 4 14 5 11 15 3 2 12 1 7 8 8 6 3 6 21 5 15 15 6 32 23 45 65 7 8 6 5 4 的演示动画:
    在这里插入图片描述

B+Tree 索引

概述

  • 其实B+树与B-树相差并不大,由于 B- 树可能会从最高级的根节点查询到最低级的叶子节点。那我们可以从叶子节点开始查啊,这就产生了B+树结构。
  • 在每一个叶子节点做一个标记,把这些标记存起来,每次查的时候可以在查询根节点的时候从叶子节点也开始查。
  • 示意图如下:
    在这里插入图片描述
    也可以用下面形式表示:
    在这里插入图片描述

下图是B+树的建立过程:

  • 依次插入6 10 4 14 5 11 15 3 2 12 1 7 8 8 6 3 6 21 5 15 15 6 32 23 45 65 7 8 6 5 4 的演示动画:
    在这里插入图片描述

B+ 树与 B- 树的区别

  • B- 树的关键字和记录是放在一起的,叶子节点可以看作外部节点,不包含任何信息;B+ 树的非叶子节点中只有关键字和指向下一个节点的索引,记录只放在叶子节点中。
  • 在B-树中,越靠近根节点的记录查找时间越快,只要找到关键字即可确定记录的存在;而B+树中每个记录的查找时间基本是一样的,都需要从根节点走到叶子节点,而且在叶子节点中还要再比较关键字

B+ 树的优势

  • B+树的磁盘读写代价更低:而在实际应用中却是B+树的性能要好些。因为B+树的非叶子节点不存放实际的数据,这样每个节点可容纳的元素个数比B-树多,树高比B-树小,这样带来的好处是减少磁盘访问次数。 尽管B+树找到一个记录所需的比较次数要比B-树多,但是一次磁盘访问的时间相当于成百上千次内存比较的时间,因此实际中B+树的性能可能还会好些。
  • B+树的查询效率更加稳定: B+树的叶子节点使用指针连接在一起,方便顺序遍历(例如查看一个目录下的所有文件,一个表中的所有记录等),这也是很多数据库和文件系统使用B+树的缘故。

聚簇索引和非聚簇索引

聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。术语 ‘聚簇’表示数据行和相邻的键值聚簇的存储在一起

  • 如下图,左侧的索引就是聚簇索引,因为数据行在磁盘的排列和索引排序保持一致。
    在这里插入图片描述

聚簇索引的好处:

  • 按照聚簇索引排列顺序,查询显示一定范围数据的时候,由于数据都是紧密相连,数据库不不用从多个数据块中提取数据,所以节省了大量的 io 操作。

聚簇索引的限制:

  • 对于 mysql 数据库目前只有 innodb 数据引擎支持聚簇索引,而 Myisam 并不支持聚簇索引。
  • 由于数据物理存储排序方式只能有一种,所以每个 Mysql 的表只能有一个聚簇索引。一般情况下就是该表的主键。
  • 为了充分利用聚簇索引的聚簇的特性,所以 innodb 表的主键列尽量选用有序的顺序 id,而不建议用无序的 id,比如 uuid 这种。

时间复杂度(扩展)

同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。

  • 时间复杂度是指执行算法所需要的计算工作量,用大 O 表示记为:O(…)
    在这里插入图片描述

索引的分类

单值索引

概念: 即一个索引只包含单个列,一个表可以有多个单列索引。
语法:

  • 和表一起创建:

    CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),customer_name
    VARCHAR(200),
    PRIMARY KEY(id),
    KEY (customer_name)
    );
    
  • 单独建表索引:

    CREATE INDEX idx_customer_name ON customer(customer_name);
    

唯一索引

概念: 索引列的值必须唯一,但允许有空值。

  • 和表一起创建

    CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),customer_name
    VARCHAR(200),
    PRIMARY KEY(id),
    KEY (customer_name),
    UNIQUE (customer_no)
    );
    
  • 单独建唯一索引:

    CREATE UNIQUE INDEX idx_customer_no ON customer(customer_no);
    

主键索引

概念: 设定为主键后数据库会自动建立索引,innodb 为聚簇索引。

  • 随表创建

    CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),customer_name
    VARCHAR(200),
    PRIMARY KEY(id)
    );
    
  • 单独创建

    ALTER TABLE customer add PRIMARY KEY customer(customer_no);
    
  • 删除建主键索引:

    ALTER TABLE customer drop PRIMARY KEY ;
    
  • 修改建主键索引:

    必须先删除掉(drop)原索引,再新建(add)索引
    

复合索引

概念: 即一个索引包含多个列

  • 随表一起建立

    CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),customer_name
    VARCHAR(200),
    PRIMARY KEY(id),
    KEY (customer_name),
    UNIQUE (customer_name),
    KEY (customer_no,customer_name)
    );
    
  • 单独建索引:

    CREATE INDEX idx_no_name ON customer(customer_no,customer_name);
    

基本语法

在这里插入图片描述

索引的创建时机

适合创建的情况

  • 主键自动建立唯一索引;
  • 频繁作为查询条件的字段应该创建索引
  • 查询中与其它表关联的字段,外键关系建立索引
  • 单键/组合索引的选择问题, 组合索引性价比更高
  • 查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
  • 查询中统计或者分组字段

不适合创建的情况

  • 表记录太少
  • 经常增删改的表或者字段
  • Where 条件里用不到的字段不创建索引
  • 过滤性不好的不适合建索引

Explain 性能分析

概念

使用 EXPLAIN 关键字 可以模拟优化器执行SQL 查询语句,从而知道MySQL 是如何处理你的SQL 语句的。分析你的查询语句或是表结构的性能瓶颈。
用法: Explain+SQL 语句。
Explain 执行后返回的信息:
在这里插入图片描述

实例

首先创建 t1,t2,t3,t4 等 四张表,且插入一些数据:

```sql
CREATE TABLE t1(id INT(10) AUTO_INCREMENT,content VARCHAR(100) NULL , PRIMARY KEY (id));
CREATE TABLE t2(id INT(10) AUTO_INCREMENT,content VARCHAR(100) NULL , PRIMARY KEY (id));
CREATE TABLE t3(id INT(10) AUTO_INCREMENT,content VARCHAR(100) NULL , PRIMARY KEY (id));
CREATE TABLE t4(id INT(10) AUTO_INCREMENT,content VARCHAR(100) NULL , PRIMARY KEY (id));
INSERT INTO t1(content) VALUES(CONCAT('t1_',FLOOR(1+RAND()*1000)));
INSERT INTO t2(content) VALUES(CONCAT('t2_',FLOOR(1+RAND()*1000)));
INSERT INTO t3(content) VALUES(CONCAT('t3_',FLOOR(1+RAND()*1000)));
INSERT INTO t4(content) VALUES(CONCAT('t4_',FLOOR(1+RAND()*1000)));
```

1、id

select 查询的序列号,包含一组数字,表示查询中执行 select 子句或操作表的顺序。

  • id 号每个号码,表示一趟独立的查询。一个sql 的查询趟数越少越好。
  • ①id 相同,执行顺序由上至下
    在这里插入图片描述
  • ②id 不同,id 不同,如果是子查询,id 的序号会递增,id 值越大优先级越高,越先被执行
    在这里插入图片描述
  • ③有相同也有不同
    在这里插入图片描述
    id 如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id 值越大,优先级越高,越先执行衍生= DERIVED

2、select_type

  • select_type 代表查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询。
    在这里插入图片描述

3、table

  • 这个数据是基于哪张表的。

4、type

  • type 是查询的访问类型。是较为重要的一个指标,结果值从最好到最坏依次是:
    system > const > eq_ref > ref > fulltext > ref_or_null > index_merge> unique_subquery > index_subquery > range > index >ALL,一般来说,得保证查询至少达到 range 级别,最好能达到ref。

在这里插入图片描述
具体描述如下:

类型描述
system表只有一行记录(等于系统表),这是 const 类型的特列,平时不会出现,这个也可以忽略不计
const表示通过索引一次就找到了,const 用于比较 primary key 或者 unique 索引。因为只匹配一行数据,所以很快。如将主键置于 where 列表中,MySQL 就能将该查询转换为一个常量。
eq_ref唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描。
ref非唯一性索引扫描,返回匹配某个单独值的所有行.本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而,它可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体。
range只检索给定范围的行,使用一个索引来选择行。key 列显示使用了哪个索引一般就是在你的 where 语句中出现了 between、<、>、in 等的查询这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引
index出现index是sql使用了索引但是没用通过索引进行过滤,一般是使用了覆盖索引或者是利用索引进行了排序分组。
allFull Table Scan,将遍历全表以找到匹配的行。
index_merge在查询过程中需要多个索引组合使用,通常出现在有 or 的关键字的 sql 中。
ref_or_null对于某个字段既需要关联条件,也需要 null 值得情况下。查询优化器会选择用 ref_or_null 连接查询。
index_subquery利用索引来关联子查询,不再全表扫描。
unique_subquery该联接类型类似于 index_subquery。 子查询中的唯一索引

5、possible_keys

  • 显示可能应用在这张表中的索引,一个或多个。查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用。

6、key

  • 实际使用的索引。如果为NULL,则没有使用索引。

7、key_len

  • 表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。key_len 字段能够帮你检查是否充分的利用上了索引。ken_len 越长,说明索引使用的越充分
    在这里插入图片描述
    在这里插入图片描述
    计算方法如下:
    • ①先看索引上字段的类型+长度比如int=4 ; varchar(20) =20 ; char(20) =20
    • ②如果是varchar 或者char 这种字符串字段,视字符集要乘不同的值,比如utf-8 要乘3,GBK 要乘2,
    • ③varchar 这种动态字符串要加2 个字节
    • ④允许为空的字段要加1 个字节
      第一组:key_len=age 的字节长度+name 的字节长度=4+1 + ( 20*3+2)=5+62=67
      第二组:key_len=age 的字节长度=4+1=5
    • 通过上面的结果可以得到结论 xxx% 走索引;但是 %xxx% 不走索引

8、ref:

  • 显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列上的值。
    在这里插入图片描述

9、rows

  • rows 列显示 MySQL 认为它执行查询时必须检查的行数。越少越好!
    在这里插入图片描述

10、Extra

其他的额外重要的信息。

信息类型描述
Using filesort说明 mysql 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。MySQL 中无法利用索引完成的排序操作称为“文件排序”。
Using temporary使了用临时表保存中间结果,MySQL 在对查询结果排序时使用临时表。常见于排序 order by 和分组查询 group by。
Using index代表表示相应的 select 操作中使用了覆盖索引(Covering Index),避免访问了表的数据行,效率不错!如果同时出现 using where,表明索引被用来执行索引键值的查找;如果没有同时出现 using where,表明索引只是用来读取数据而非利用索引执行查找
Using where表明使用了 where 过滤。
Using join buffer使用了连接缓存。
impossible wherewhere 子句的值总是 false,不能用来获取任何元组。(即后面的条件没有数据满足)
select tables optimized away在没有 GROUPBY 子句的情况下,基于索引优化 MIN/MAX 操作或者对于 MyISAM 存储引擎优化 COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Linux驱动---IO模型

1、什么是IO 在计算机系统中I/O就是输入和输出的意思&#xff0c;只要具有输入输出类型的交互系统都可以认为是I/O系统 也可以说I/O是整个操作系统数据交换与人机交互的通道 针对不同的操作对象&#xff0c; 可以划分为磁盘I/O模型&#xff0c;网络I/O模型&#xff0c;内存映…...

ssh爆破获取用户密码

通过nmap扫描目标主机发现ssh版本为OpenSSH 5.3&#xff0c;有漏洞 漏洞影响版本&#xff08;OpenSSH < 8.3p1&#xff09; 使用msfconsole 工具 search ssh #查找有关ssh的漏洞 找到并使用漏洞use auxiliary/scanner/ssh/ssh_login show options #查看此漏…...

express框架rmvp的使用

文章目录前言一、RMVP是什么&#xff1f;二、搭建基本服务1.构建服务器server.js基本组成2.router文件2.1、如何实现数据的获取GETPOSTPUTPATCHDELETE2.2 如果想要不区分请求方式,一律接收2.3 做rmvp的抽离,抽离controller三、渲染知识补充前端请求静态资源目录&#xff08;快&…...

在java程序中使用protobuf

文章目录简介为什么使用protobuf定义.proto文件编译协议文件详解生成的文件Builders 和 Messages序列化和反序列化协议扩展总结简介 Protocol Buffer是google出品的一种对象序列化的方式&#xff0c;它的体积小传输快&#xff0c;深得大家的喜爱。protobuf是一种平台无关和语言…...

PMP项目管理 | 项目整合管理

PMP项目管理之项目整合管理项目整合管理定义及概念项目整合管理考虑要素项目整合管理过程包括子过程分解4.1 制定项目章程定义理解作用发生时机参与方输入、工具与技术和输出4.2 制定项目管理计划定义理解作用发生时机参与方项目管理计划和文件输入、工具与技术和输出4.3 指导和…...

看完99%的人都学会了!java多态简单例子_ser

认识HTTP 什么是超文本什么是传输什么是协议 HTTP相关组件 网络模型OSI 模型浏览器Web服务器CDNWAFWebServiceHTMLWeb页面构成 与 HTTP 有关的协议 TCP/IPDNSURI / URLHTTPS 详解 HTTP 报文 HTTP请求方法HTTP请求URLHTTP版本HTTP 请求响应过程HTTP 请求特征 HTTP 标头 通用…...

【详细教程】-Python绘图模块Matplotlib

文章目录1 简介2 绘图标记2.1 fmt参数2.2 标记大小与颜色3 绘图线3.1 线的类型3.2 线的颜色3.3 线的宽度3.4 多条线4 轴标签和标题4.1 标题4.2 图形中文显示4.3 标题与标签的定位5 网格线6 绘制多个图6.1 subplot6.2 subplots7 散点图8 柱形图9 饼图1 简介 下面的代码通过两个…...

2021年A特种设备相关管理(锅炉压力容器压力管道)免费试题及A特种设备相关管理(锅炉压力容器压力管道)考试技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通&#xff1a;A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;免费试题是安全生产模拟考试一点通生成的&#xff0c;A特种设备相关管理&#xff08;锅炉压力容器压力管道&#…...

前端类库开发最佳实践

Yarn Lerna Rollup 示例项目 Yarn 通过使用 Yarn 的工作区功能&#xff0c;让 Yarn 根据就依赖关系帮助你分析所有子项目的公共依赖&#xff0c;让所有的子项目的公共依赖只会被下载和安装一次。 Lerna 通过 Lerna 可以将一系列相互耦合比较大、又相互独立的库进行管理&…...

shell 的关联数组

shell 的关联数组 引言 shell也有Map的数据结构&#xff0c;哈哈哈&#xff0c;是挺高大上的。万能的shell。。。。 万恶的mac&#xff0c;sed和linux不一样&#xff0c;关联数组和linux也不要一样。要你干啥&#xff01;&#xff01;&#xff01; 一个需求的处理 感谢这个…...

Cookie对象的使用

Cookie对象是做什么的&#xff1f; 在我的理解里&#xff0c;Cookie是客户端用来和客户端保持通讯信息的一个对象。 怎样使用Cookie 使用一个对象&#xff0c;很显然我们要先创建他 Cookie cookie new Cookie(name, value); 然后用res对象将Cookie发送给客户端 res.addCookie…...

jspdf本地运行环境正常,打包后下载的pdf不全

最近开发过程中遇到个问题&#xff0c;用jspdf配合html2canvas把页面元素下载为pdf文件&#xff0c;在本地运行环境好好的&#xff0c;但是打包之后下载的pdf就是不全的&#xff0c;搜了好久也没找出什么对症的解决方案。 现象就是这样&#xff1a; 正常的文件&#xff1a; 有…...

12013.ADC779x采集芯片

文章目录1 AD7997 特征2 管脚描述3 I2C地址确定3 内部寄存器结构3.1 内部结存器结构3.2 配置寄存器3.3 转换结果寄存器3.4 数据寄存器3.5 Hysteresis Register (CH1/CH2/CH3/CH4) 迟滞寄存器3.6 CYCLE TIMER REGISTER 循环计时寄存器3.7 SAMPLE DELAY AND BIT TRIAL DELAY 样本…...

实训项目-白金手册(个人信息管理系统)

实训项目-个人信息管理系统 文章目录实训项目-个人信息管理系统前言一、前期相关准备1、 编译软件安装2、 基本技术掌握2.1、 信息存储2.1.1、 临时存储2.1.2、 长期存储2.2、 查找排序2.3、 线性表操作2.4、 文件操作2.5、 代码书写规范二、需求分析三、难点疑点分析1、实现读…...

C++ ---仅仅翻转字符

仅仅翻转字符 题目描述&#xff1a; 给定一个字符串 S&#xff0c;返回 “反转后的” 字符串&#xff0c;其中不是字母的字符都保留在原地&#xff0c;而所有字母的位置发生反转。 题目来源&#xff1a;力扣 class Solution { public:bool IsLetter(char ch){if((ch >a&a…...

mybatis-generator自定义TypeHandler进行加密解密

背景&#xff1a;公司需要将部分验证码进行加密入库&#xff0c;查询的时候解密。 初始时&#xff1a;在每次的逻辑代码中&#xff0c;涉及到该字段的新增&#xff0c;修改&#xff0c;都需要对指定字段进行加密。查询的时候对字段进行解密(缺点&#xff1a;可维护性太差) 改…...

线性封闭区域2D刀路讲解

在学习UG教程的过程中往往要学习UG编程&#xff0c;想尽快速成&#xff0c;可以按照下面UG编程学习步骤&#xff1a; 步骤1、装上编程软件-UG&#xff0c;我们尽量装NX10.0版本&#xff0c;因为它是一个很稳定的一个版本&#xff0c; 步骤2、装上UG的最佳伙伴-优品外挂&#…...

慢慢学习,然后惊呆所有人(八,异常)

目录 ​ 什么是异常&#xff1f; 错误和异常的区别 异常的处理 try语法块&#xff1a; 抓捕异常&#xff1a; 多行异常的处理&#xff1a; 查看出现的异常情况 ​ 自定义异常和抛出异常 Java中异常继承关系 异常抛出&#xff1a; 自定义异常&#xff1a; finall…...

并查集(Union Find)

算法背景 Union Find算法&#xff0c;中文并查集。主要用来解决图论中的连通判断问题&#xff0c;简单抽象问题为&#xff1a; 平面上有n个点给定他们之间两两连接关系 要求输入任意两个点&#xff0c;判断他们是否能够有一条路径联通 算法步骤 一旦有连接&#xff0c;就把…...

TCP/IP网络协议以及Android网络优化方案

引用文章地址&#xff1a;TCP/IP网络协议 文章目录TCP/IPTCP/IP 模型TCP 和 UDPTCP怎么保证传输过程的可靠性&#xff1f;TCP 为什么要三次握手/四次挥手网页请求一个 URL 的流程DNS 工作原理HTTPS 加密原理移动端如何优化一个网络请求呢&#xff1f;DNS 优化CacheControlQ&…...

2021暑假每日一题 【week2 完结】

目录3763. 数字矩阵 【难度: 一般 / 知识点: 思维】3764. 三元数异或 【难度: 一般 / 知识点: 思维 贪心】3767. 最小的值 【难度: 一般 / 思维: 贪心 枚举】3768. 字符串删减【难度: 简单 / 知识点: 模拟】3769. 移动石子 【难度: 简单 / 知识点: 贪心】3763. 数字矩阵 【难度…...

数组--Leetcode 27. 移除元素

1、题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…...

SpringBoot2 中 spring.http.multipart.max-file-size 报错问题

由于springboot具有几个版本&#xff0c;不同版本对于文件上传最大限制的配置也有所不同。 所以要注意springboot本身的版本&#xff0c;不然会一直报错# 在springboot1.3版本中&#xff1a; multipart.maxFileSize# 在springboot1.4与springboot1.5版本中&#xff1a; spring.…...

慢慢学习,然后惊呆所有人(八,异常)

目录 ​ 什么是异常&#xff1f; 错误和异常的区别 异常的处理 try语法块&#xff1a; 抓捕异常&#xff1a; 多行异常的处理&#xff1a; 查看出现的异常情况 ​ 自定义异常和抛出异常 Java中异常继承关系 异常抛出&#xff1a; 自定义异常&#xff1a; finall…...

重拾React框架学习笔记总结

重拾React框架学习笔记总结 环境搭建 nvm nvm用来管理node版本。 brew install nvmnvm ls-remote // 查看所有的node可用版本 nvm list // 查看已安装node版本 nvm install 版本号 // 下载指定node版本&#xff0c;如nvm install v11.14.0 nvm use 版本号 // 使用指定版…...

客户端负载均衡Ribbon

文章目录Ribbon1&#xff09;、Ribbon模块2&#xff09;、RestTemplate结合Ribbon使用I、使用RestTemplateII、整合Ribbon3&#xff09;、负载均衡策略介绍4&#xff09;、自定义负载策略5&#xff09;、配置详情I、常用配置II、代码配置RibbonIII、配置文件方式配置Ribbon6&am…...

用Python搭建股票舆情分析系统

写在前面 下面的这篇文章将手把手教大家搭建一个简单的股票舆情分析系统&#xff0c;其中将先通过金融界网站爬取指定股票在一段时间的新闻&#xff0c;然后通过百度情感分析接口&#xff0c;用于评估指定股票的正面和反面新闻的占比&#xff0c;以此确定该股票是处于利好还是…...

python学习之路(第八天)---re模块正则表达式

python学习之路&#xff08;第八天&#xff09;—re模块正则表达式 python学习之路&#xff08;第八天&#xff09;---re模块正则表达式在线正则匹配正则匹配语法re.compile方法re.match方法re.search方法re.finditer方法转义匹配findall()正则表达式的实例正则表达式&#xff…...

win10开启局域网远程桌面连接

要求&#xff1a;两台电脑&#xff0c;同时连接在同一局域网。假设是电脑A开启允许局域网远程桌面&#xff0c;然后电脑B连接。这两台电脑需要按照下面的步骤来做。 一、电脑A 1.点击此电脑图标&#xff0c;右键&#xff0c;属性。 2.点击远程设置 3.开启允许被远程连接 4.打开…...

740_CTEX安装

全部学习汇总&#xff1a; https://github.com/GreyZhang/g_Tex 最终还是走上了这条路&#xff0c;没有抵制住这个神秘的诱惑。其实&#xff0c;TEX对我来说似乎并不是一个必须要接触的东西&#xff0c;接触的最大原因也是因为高德纳创造了他&#xff0c;我想看看这一套工具背后…...

多读一年研究生值得吗

多读一年研究生&#xff0c;值不值得&#xff1f; 想毕业即就业的同学&#xff0c;选择专硕会更加合适。虽然有声音认为“专硕不如学硕”&#xff0c;但在就业市场上&#xff0c;专硕的认可度是逐步提高的。在江苏省18年的研究生教育质量报告中&#xff0c;专硕的平均月薪比学…...

香港计算机专业硕士学制几年,想读香港一年计算机硕士,懂行老哥来指导一下我这个迷茫的five...

背景大概就是C9计算机本&#xff0c;gpa不太行3.1&#xff0c;六级五百多还没考过托福雅思&#xff0c;深圳工作一年&#xff0c;税后22w左右&#xff0c;想工作两年后合同到期跳槽&#xff0c;感觉竞争力不足想读个硕士&#xff0c;感觉硕士这个学历有没有还是有差距的。。。考…...

学生管理系统JAVA

1.需求 添加学生&#xff1a;通过键盘录入学生信息&#xff0c;添加到集合中 删除学生&#xff1a;通过键盘录入需要删除学生的学号&#xff0c;将该学生对象从集合中删除 修改学生&#xff1a;通过键盘录入需要修改学的学号&#xff0c;将该学生对象的其他信息进行修改 查看学…...

香港中文大学计算机辅助翻译一年制,2020年香港中文大学一年制硕士容易毕业吗...

香港中文大学(The Chinese University of Hong Kong)&#xff0c;简称港中大(CUHK)&#xff0c;书院联邦制大学建制&#xff0c;为世界大学联盟成员、亚洲首家国际商学院协会(AACSB)认证成员、亚太国际教育协会创始成员、英联邦大学协会成员&#xff0c;是一所以“中国研究”、…...

密大安娜堡计算机硕士,2020年密歇根大学安娜堡分校一年制硕士含金量

学校简介&#xff1a;密歇根大学安娜堡分校(University of Michigan, Ann Arbor)&#xff0c;也译作密西根大学安娜堡分校。它是密歇根大学的旗舰校区&#xff0c;因此通常“密歇根大学”就能代指“密歇根大学安娜堡分校”。是位于美国密歇根州的一所世界顶尖著名公立大学&…...

计算机硕士要求,美国计算机硕士专业的录取要求

计算机专业是美国大学的招生大户。&#xff0c;那么你知道美国大学计算机硕士录取条件 如何吗?下面是86留学网详细介绍。美国大学计算机硕士录取条件&#xff1a;在录取要求方面&#xff0c;计算机专业对申请者的背景条件没有严格要求。非计算机背景的学生&#xff0c;只要有相…...

加拿大计算机硕士留学移民,加拿大硕士留学移民深度解析,纯干货

对于大多数国内申请人来说&#xff0c;加拿大硕士留学移民是移民加拿大的优选方式之一。镀金的同时&#xff0c;收获加拿大枫叶卡&#xff0c;一举多得的。那加拿大硕士留学移民都有什么优势&#xff1f;加拿大硕士学制什么样呢&#xff1f;需要什么条件才能申请呢&#xff1f;…...

帝国理工计算机科学硕士学费,去帝国理工学院读研需要几年?一年学费是多少?语言要求都有哪些?...

虽然说帝国理工学院在2020年QS世界大学排名中比去年降低了一位&#xff0c;但帝国理工学院依然保持在全球前10的位置&#xff0c;由此可见&#xff0c;帝国理工学院一直是众多留学生梦寐以求的学府之一&#xff0c;那么&#xff0c;问题来了&#xff0c;去帝国理工学院读研需要…...

帝国理工计算机科学硕士,帝国理工计算机硕士介绍

帝国理工学院计算机科学理学硕士项目提供计算机科学的密集训练&#xff0c;适用于非计算机学科背景、想要掌握计算机核心技术或想要丰富计算机知识的学生。帝国理工学院计算机科学理学硕士项目提供了为期一年的计算机科学的密集训练&#xff0c;适用于非计算机学科背景、想要就…...

多伦多大学计算机专业硕士,多伦多大学计算机硕士解析

计算机科学系提供一个研究生课程&#xff0c;通往计算机科学的理学硕士和哲学博士学位。该项目包括课程和研究 (MSc 和 PhD) &#xff0c;两者都是在一名教员的监督下进行的。教师的计算机科学感兴趣的范围广泛的主题相关的计算 , 包括编程语言和方法、软件工程、操作系统、编译…...

伯明翰大学计算机科学网络安全硕士,伯明翰大学网络安全硕士专业

伯明翰大学网络安全硕士专业是为期一年的全日制项目&#xff0c;适合计算机相关专业的毕业生。在伯明翰大学网络安全硕士专业中&#xff0c;学生能够掌握评估设计和构建安全计算机系统的知识和专业技能。伯明翰大学网络安全硕士专业涵盖设计构建安全网络系统的理论和实践&#…...

留学生计算机专业硕士,留学计算机专业硕士

计算机专业是近年来的留学热门专业之一。有些同学想了解去瑞士留学计算机专业研究生的费用。今天&#xff0c;出国留学网就为大家详细介绍一下吧&#xff01;瑞士硕士留学费用1.学费硕士的课程时长一般在一年半到两年之间。硕士留学瑞士的公立大学收费不会很高&#xff0c;每年…...

佐治亚理工学计算机硕士,佐治亚理工学院电子与计算机工程硕士专业

佐治亚理工学院电子与计算机工程硕士专业是美国排名最高的学校之一&#xff0c;也是美国同类规模最大的学校之一。研究方向包括&#xff1a;生物工程、计算机系统和软件、数字信号处理、电能、电磁、电子设计和应用、微电子/微、光学和光子学、系统和控制、电信、VLSI系统和数字…...

英迪大学计算机科学与技术,一年完成世界名校硕士,在马来西亚省时省钱实现人生逆袭!...

马来西亚推行英联邦的教育体制。全英文教学、整体教育水平较高、文凭的国际认同度高&#xff0c;堪称黄金跳板。马来西亚院校的费用每年约6-7万人民币左右&#xff0c;留学性价比超高。马来西亚多个高校设置1年的硕士课程&#xff0c;时间短&#xff0c;学历含金量高。一年时间…...

北卡州立大学计算机科学硕士,2020年北卡罗来纳州立大学一年制硕士含金量

由于北卡州立大学&#xff0c;尤其是研究生院&#xff0c;对国际学生的招收以苛刻著称&#xff0c;对申请者的综合实力有极其严格的筛选标准&#xff0c;导致很多高分但缺乏特点的中国申请者被拒之门外。这就使中国留学生数量以及中国校友数量远远低于全美其他顶尖高校&#xf…...

2018年海归计算机硕士就业前景,2018年美国留学生回国就业情况,起薪一万,最热是IT行业!...

原标题&#xff1a;2018年美国留学生回国就业情况&#xff0c;起薪一万&#xff0c;最热是IT行业&#xff01;这些年的留学归国潮不断增加&#xff0c;回国的留学生也逐渐增加&#xff0c;越来越多人关注留学就业情况。选择什么专业&#xff0c;就业形势、薪资怎样&#xff0c;…...

美国计算机授课型硕士,美国高校一年制硕士项目中,哪些项目最值得推荐?

如果有人说&#xff1a;“我在美国读研”&#xff0c;听众的反应大多会是&#xff1a;“真不错”。如果有人说&#xff1a;“我在美国读研&#xff0c;一年”&#xff0c;听众可能会质疑&#xff1a;“这么水&#xff0c;怕不是为了学历好看&#xff1f;”因为时间短&#xff0…...

悉尼大学计算机一年制硕士,悉尼大学一年制硕士

澳洲也有许多学校开设了一年制硕士课程&#xff0c;悉尼大学就是其中之一。悉尼大学的一年制硕士课程有Master of International Business&#xff0c;.Masterof EducationMaster of Engineering等。悉尼大学一年制硕士课程介绍1、Master of International Business学制&#x…...

JAVA毕业设计客户关系智能管理系统计算机源码+lw文档+系统+调试部署+数据库

JAVA毕业设计客户关系智能管理系统计算机源码lw文档系统调试部署数据库 JAVA毕业设计客户关系智能管理系统计算机源码lw文档系统调试部署数据库本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前端…...

成人兴趣班悄然兴起,为何大家都喜欢?

“培养孩子艺术特长的兴趣班到处都是,有没有大人可以学的呢?”在给孩子选择兴趣班的时候,不少家长会萌发给自己培养一些业余爱好的念头。插画、茶道、瑜伽等原本就主要针对成人设计的兴趣培训,还有油画、素描、钢琴、书法、古筝……这些原来几乎是为孩子量身定做的兴趣班,如今…...