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

MySQL数据库索引介绍

前言

在数据库中创建索引可以提高数据检索的速度和效率。索引是一种数据结构,类似于书籍的目录,它可以帮助数据库系统快速定位和访问表中的特定数据行。

目录

一、索引相关介绍

1. 概述

2. 作用

3. 副作用

4. 创建原则依据

二、索引的分类与管理

1. 普通索引

1.1 简介

1.2 创建方法

2. 唯一索引

2.1 简介

2.2 创建方法

3. 主键索引

3.1 简介

3.2 创建方法

4. 组合索引

4.1 简介

4.2 创建方法

5. 全文索引

5.1 简介

5.2 创建方法

6. 查看索引与实现索引

7. 删除索引 

8. 各字段含义 

9. 总结


一、索引相关介绍

1. 概述

索引就是一种帮助系统更快查找信息数据的集合表。

  • 索引是一个排序的列表,储着索引的值和包含这个值的数据所在行的物理地址
  • 无需全表扫描,访问相应的数据,能加快数据库的查询速度
  • 索引是表中一列或者若干列值排序的方法
  • 需要额外的磁盘空间

2. 作用

① 选择合适的索引,可以快速定位,加快查询

② 当表很大或多张表,可以成倍提高查询速度

③ 降低数据库的IO成本,还可以降低数据库的排序成本

④ 创建唯一(键)性索引,可以保证数据表中每一行数据的唯一性

⑤ 表之间连接加速

⑥ 使用分组和排序时,减少时间

3. 副作用

① 索引文件用于保存数据记录的地址需要占用磁盘空间

② 修改数据时更加费时,索引也要随之变动

4. 创建原则依据

索引虽可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。

① 表的主键、外键必须有索引

② 记录数超过300行的表应该有索引

③ 经常与其他表进行连接的表,在连接字段上应该建立索引

④ 经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引

⑤ 索引应该建在选择性高的字段上

⑥ 索引应该建在小字段上

⑦ 唯一性太差的字段不适合建立索引

⑧ 更新太频繁地字段不适合创建索引

二、索引的分类与管理

这里准备一张表格和一些数据,以便进一步介绍索引的分类使用。

mysql> create table class (id int(6) not null,name char(20) not null,cardid varchar(10),phone varchar(11),address char(40),remark text);
mysql> insert into class values (1,'zhao',12345,11111,'nanjing','vip');
mysql> insert into class values (2,'qian',1234,22222,'nanjing','novip');
mysql> insert into class values (3,'sun',123,33333,'beijing','svip');
mysql> insert into class values (4,'li',12,44444,'shanghai','vip');
mysql> insert into class values (5,'zhou',321,55555,'huaian','ssvip');
mysql> insert into class values (6,'wu',222,666666,'yangzhou','ssvip');
mysql> insert into class values (7,'zhen',233,77777,'nanjing','vip');
mysql> select * from class;
+----+------+--------+--------+----------+--------+
| id | name | cardid | phone  | address  | remark |
+----+------+--------+--------+----------+--------+
|  1 | zhao | 12345  | 11111  | nanjing  | vip    |
|  2 | qian | 1234   | 22222  | nanjing  | novip  |
|  3 | sun  | 123    | 33333  | beijing  | svip   |
|  4 | li   | 12     | 44444  | shanghai | vip    |
|  5 | zhou | 321    | 55555  | huaian   | ssvip  |
|  6 | wu   | 222    | 666666 | yangzhou | ssvip  |
|  7 | zhen | 233    | 77777  | nanjing  | vip    |
+----+------+--------+--------+----------+--------+
7 rows in set (0.00 sec)

1. 普通索引

1.1 简介

  • 普通索引是最基本的索引类型,它没有唯一性限制,允许列中存在重复的值。

1.2 创建方法

① 直接创建索引

格式:
create index 索引名 on 表名 (列名[(length)]);
# (列名(length)):length是可选项。如果忽略 length 的值,则使用整个列的值作为索引。如果指定使用列前的 length 个字符来创建索引,这样有利于减小索引文件的大小。
# 索引名建议以“_index”结尾。示例:
mysql> create index name_index on class (name);
mysql> select name from class;       #实现索引
+------+
| name |
+------+
| li   |
| qian |
| sun  |
| wu   |
| zhao |
| zhen |
| zhou |
+------+
7 rows in set (0.00 sec)
mysql> show create table class;"id" int(6) NOT NULL,"name" char(20) NOT NULL,"cardid" varchar(10) DEFAULT NULL,"phone" varchar(11) DEFAULT NULL,"address" char(40) DEFAULT NULL,"remark" text,KEY "name_index" ("name")          #已建立索引 name_index

② 修改表的方式创建

格式:
alter table 表名 add index 索引名 (列名);
示例:
mysql> alter table class add index cardid_index (cardid);
mysql> select cardid from class;   #实现索引
+--------+
| cardid |
+--------+
| 12     |
| 123    |
| 1234   |
| 12345  |
| 222    |
| 233    |
| 321    |
+--------+
7 rows in set (0.00 sec)
mysql> show create table class;KEY "name_index" ("name"),KEY "cardid_index" ("cardid")    #已建立索引 cardid_index

③ 创建表的时候指定

格式:
create table 表名 (字段1 数据类型,字段2 数据类型[,...],index 索引名 (列名));
示例:
mysql> create table test01 (id int(3) not null,name varchar(15),cardid char(20) not null,index id_index(id));
mysql> show create table test01;         #实现索引
| test01 | CREATE TABLE "test01" ("id" int(3) NOT NULL,"name" varchar(15) DEFAULT NULL,"cardid" char(20) NOT NULL,KEY "id_index" ("id")                  #已建立索引 cardid_index
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

2. 唯一索引

2.1 简介

  • 唯一索引要求索引列的值是唯一的,不允许重复值。
  • 唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。

2.2 创建方法

① 直接创建索引

格式:
create unique index 索引名 on 表名 (列名);
示例:
mysql> create unique index id_index on class (id);
mysql> show create table class;UNIQUE KEY "id_index" ("id"),    #已建立唯一键索引 id_indexKEY "name_index" ("name"),KEY "cardid_index" ("cardid")
mysql> select id from class;       #实现索引
+----+
| id |
+----+
|  4 |
|  3 |
|  2 |
|  1 |
|  6 |
|  7 |
|  5 |
+----+
7 rows in set (0.00 sec)

② 修改表方式创建

格式:
alter table 表名 add unique 索引名 (列名);
示例:
mysql> alter table class add unique phone_index (phone);
mysql> show create table class;UNIQUE KEY "id_index" ("id"),UNIQUE KEY "phone_index" ("phone"),  #已建立唯一键索引 phone_indexKEY "name_index" ("name"),KEY "cardid_index" ("cardid")
mysql> select phone from class;        #实现索引
+--------+
| phone  |
+--------+
| 11111  |
| 22222  |
| 33333  |
| 44444  |
| 55555  |
| 666666 |
| 77777  |
+--------+
7 rows in set (0.00 sec)

③ 创建表的时候指定

格式:
create table 表名 (字段1 数据类型[,...],unique 索引名 (列名));
示例:
mysql> create table test02 (id int,name char(6),unique id_index (id));
mysql> show create table test02;UNIQUE KEY "id_index" ("id")     #已建立唯一键索引 id_index

3. 主键索引

3.1 简介

  • 主键索引是一种特殊的唯一索引,必须指定为“primary key”;不允许有 NULL 值,且每个表只能有一个主键索引。

3.2 创建方法

① 创建表的时候指定

格式:
create table 表名 ([...],primary key (列名));
示例:
mysql> create table test03 (id int,name char(6),primary key (id));
mysql> show create table test03;PRIMARY KEY ("id")              #已建立主键索引 id

② 修改表方式创建

格式:
alter table 表名 add primary key (列名));
示例:
mysql> alter table class add primary key (id);
mysql> show create table class;       PRIMARY KEY ("id"),                 #已建立主键索引 idUNIQUE KEY "id_index" ("id"),UNIQUE KEY "phone_index" ("phone"),KEY "name_index" ("name"),KEY "cardid_index" ("cardid")
mysql> select id from class;          #实现索引
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
+----+
7 rows in set (0.00 sec)
# 在 MySQL 中,一列可以创建多种类型的索引,但通常情况下,一列只能有一个主键索引,一个唯一索引,和多个普通索引或组合索引。

4. 组合索引

4.1 简介

  • 组合索引是指将多个列组合起来创建索引(也可以单列),以提高多列条件查询的效率。
  • 需要满足最左原则,因为select语句的 where条件是依次从左往右执行的,所以在使用select 语句查询时where条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效。

4.2 创建方法

创建格式:
create table 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,index 索引名 (列名1,列名2,列名3));
实现格式:
select 列名1,列名2,列名3 from 表名;
select * from 表名 where 列名1='...' and 列名2='...' and 列名3='...';
示例:
mysql> create table test04 (id int not null,name varchar(20),cardid varchar(20),index index_idname (id,name));
mysql> insert into test04 values (1,'zhangsan',111);
mysql> insert into test04 values (2,'lisi',222);
mysql> show create table test04;"id" int(11) NOT NULL,"name" varchar(20) DEFAULT NULL,"cardid" varchar(20) DEFAULT NULL,KEY "index_idname" ("id","name")  #已建立组合索引 index_idname
mysql> select id,name from class;   #实现索引,注意这里的字段顺序需要与创建格式顺序一致
+----+------+
| id | name |
+----+------+
|  4 | li   |
|  2 | qian |
|  3 | sun  |
|  6 | wu   |
|  1 | zhao |
|  7 | zhen |
|  5 | zhou |
+----+------+
7 rows in set (0.01 sec)

5. 全文索引

5.1 简介

  • 全文索引用于全文搜索,可以在文本数据中进行关键词内容搜索。
  • 全文索引可以在 CHAR、VARCHAR 或者 TEXT 类型的列上创建。

5.2 创建方法

① 直接创建索引

创建格式:
create fulltext index 索引名 on 表名 (列名);
实现全文索引格式:
select * from 表名 where 列名='查询内容';
select * from 表名 where match(列名) against('查询内容');
示例:
mysql> create fulltext index remark_index on class (remark);
mysql> show create table class;PRIMARY KEY ("id"),UNIQUE KEY "id_index" ("id"),UNIQUE KEY "phone_index" ("phone"),KEY "name_index" ("name"),KEY "cardid_index" ("cardid"),FULLTEXT KEY "remark_index" ("remark")           #已建立全文索引 remark_index
mysql> select * from class where remark='vip';     #实现全文索引
或者
mysql> select * from class where match(remark) against('vip');
+----+------+--------+-------+----------+--------+
| id | name | cardid | phone | address  | remark |
+----+------+--------+-------+----------+--------+
|  1 | zhao | 12345  | 11111 | nanjing  | vip    |
|  4 | li   | 12     | 44444 | shanghai | vip    |
|  7 | zhen | 233    | 77777 | nanjing  | vip    |
+----+------+--------+-------+----------+--------+
3 rows in set (0.00 sec)

② 修改表方式创建

格式:
alter table 表名 add fulltext 索引名 (列名);
示例:
mysql> alter table class add fulltext address_index (address);
mysql> show create table class;PRIMARY KEY ("id"),UNIQUE KEY "id_index" ("id"),UNIQUE KEY "phone_index" ("phone"),KEY "name_index" ("name"),KEY "cardid_index" ("cardid"),FULLTEXT KEY "remark_index" ("remark"),FULLTEXT KEY "address_index" ("address")           #已建立全文索引 address_index
mysql> select * from class where address='nanjing';  #实现全文索引
或者
mysql> select * from class where match(address) against('nanjing');
+----+------+--------+-------+---------+--------+
| id | name | cardid | phone | address | remark |
+----+------+--------+-------+---------+--------+
|  1 | zhao | 12345  | 11111 | nanjing | vip    |
|  2 | qian | 1234   | 22222 | nanjing | novip  |
|  7 | zhen | 233    | 77777 | nanjing | vip    |
+----+------+--------+-------+---------+--------+
3 rows in set (0.00 sec)

③ 创建表的时候指定索引

格式:
create table 表名 (字段1 数据类型[,...],fulltext 索引名 (列名)); 
示例:
mysql> create table test05 (id int not null,name varchar(20),address varchar(20),fulltext address_index (address));
mysql> show create table test05;"id" int(11) NOT NULL,"name" varchar(20) DEFAULT NULL,"address" varchar(20) DEFAULT NULL,FULLTEXT KEY "address_index" ("address")  #已建立全文索引 address_index

6. 查看索引与实现索引

查看索引
show index from 表名;
show index from 表名\G; 竖向显示表索引信息
show keys from 表名;
show keys from 表名\G;
show create table 表名;实现索引:
select * from 表名;select * from where 表达式;
select * from 表名 where match(列名) against('查询内容');
#全文索引,搜索的是内容

7. 删除索引 

① 直接删除

格式:
drop index 索引名 on 表名;
示例:
mysql> show create table class;         #查看 class 表索引UNIQUE KEY "id_index" ("id"),UNIQUE KEY "phone_index" ("phone"),KEY "name_index" ("name"),KEY "cardid_index" ("cardid"),FULLTEXT KEY "remark_index" ("remark"),FULLTEXT KEY "address_index" ("address")mysql> drop index id_index on class;       #删除唯一索引 id_index
mysql> show create table class;PRIMARY KEY ("id"),UNIQUE KEY "phone_index" ("phone"),KEY "name_index" ("name"),KEY "cardid_index" ("cardid"),FULLTEXT KEY "remark_index" ("remark"),FULLTEXT KEY "address_index" ("address")

② 修改方式删除

格式:
alter table 表名 drop index 索引名;
示例:
mysql> alter table class drop index name_index;  #删除普通索引 name_index PRIMARY KEY ("id"),UNIQUE KEY "phone_index" ("phone"),KEY "cardid_index" ("cardid"),FULLTEXT KEY "remark_index" ("remark"),FULLTEXT KEY "address_index" ("address")

③ 删除主键索引

格式;
alter table 表名 drop primary key;
示例:
mysql> alter table class drop primary key;   #删除主键索引
mysql> show create table class;UNIQUE KEY "phone_index" ("phone"),KEY "cardid_index" ("cardid"),FULLTEXT KEY "remark_index" ("remark"),FULLTEXT KEY "address_index" ("address")

8. 字段含义 

字段含义
Table表的名称
Non_unique如果索引内容唯一,则为 0;如果可以不唯一,则为 1。
Key_name索引的名称。
Seq_in_index索引中的列序号,从 1 开始。 limit 2,3。
Column_name列名称。
Collation列以什么方式存储在索引中。在 MySQL 中,有值‘A’(升序)或 NULL(无分类)。
Cardinality索引中唯一值数目的估计值。
Sub_part如果列只是被部分地编入索引,则为被编入索引的字符的数目(zhangsan)。如果整列被编入索引,则为 NULL
Packed指示关键字如何被压缩。如果没有被压缩,则为 NULL。
Null如果列含有 NULL,则含有 YES。如果没有,则该列含有 NO。
Index_type用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
Comment备注

9. 总结

索引名称键标识说明一张表索引数量
普通索引KEY针对所有字段,没有特殊的需求/规则可多个
唯一(键)索引UNIQUE KEY针对唯一性的字段,仅允许出现一次空值可多个
主键索引PRIMARY KEY针对唯一性字段、且不可为空,同时一张表只允许包含一个主键索引一个
组合索引KEY多列/多字段组合形式的索引可多个
全文索引FULLTEXT KEY(varchar char text)全文搜索内容可多个

相关文章:

MySQL数据库索引介绍

前言 在数据库中创建索引可以提高数据检索的速度和效率。索引是一种数据结构,类似于书籍的目录,它可以帮助数据库系统快速定位和访问表中的特定数据行。 目录 一、索引相关介绍 1. 概述 2. 作用 3. 副作用 4. 创建原则依据 二、索引的分类与管理…...

中间件学习--InfluxDB部署(docker)及springboot代码集成实例

一、需要了解的概念 1、时序数据 时序数据是以时间为维度的一组数据。如温度随着时间变化趋势图,CPU随着时间的使用占比图等等。通常使用曲线图、柱状图等形式去展现时序数据,也就是我们常常听到的“数据可视化”。 2、时序数据库 非关系型数据库&#…...

Go第三方框架--gin框架(一)

序言 Gin框架作为go语言使用最多的web框架,以其快速的响应速度和对复杂http路由配置的支持受到程序员和媛们的喜爱,几乎统治了web市场。但作为一名合格的程序员,要知其然更要知其所以然,不然八股文背的也没有啥意思。本着这个原则…...

网络安全——笔记

XSS:跨站脚本(Cross-site scripting) XSS 全称“跨站脚本”,是注入攻击的一种。其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文…...

Maven pom.xml配置详解

pom.xml是什么&#xff1f; pom.xml&#xff08;项目对象模型-Project Object Model的缩写&#xff09;是Maven项目的核心配置文件&#xff0c;用于管理项目的依赖、插件、构建配置等。 举例说明&#xff1a;以阿里巴巴的fastjson为例&#xff1a; <?xml version"1.…...

2024深圳国际电线电缆及电源产品展览会

2024深圳国际电线电缆及电源产品展览会 2024 Shenzhen International Coupling, Clutch and Brake Exhibition 时间&#xff1a;2024年08月28-30日 地点&#xff1a;深圳国际会展中心&#xff08;新馆&#xff09; 预订以上展会详询陆先生 I38&#xff08;前三位&#xff…...

如何成功将自己开发的APP上架到应用商店

随着移动应用市场的蓬勃发展&#xff0c;开发一款优秀的APP已成为许多企业和个人的首要选择。然而&#xff0c;成功上架并有效推广APP至关重要。本文将逐步介绍完整的上架流程&#xff0c;包括准备所需材料、注册开发者账户、进行APP备案、提交审核以及上架成功后的推广和维护。…...

Jetson AGX ORIN 配置 FGVC-PIM 神经网络(包含 arm64 下面 torch 和 torchvision 配置内容)

Jetson AGX ORIN 配置 FGVC-PIM 神经网络 文章目录 Jetson AGX ORIN 配置 FGVC-PIM 神经网络配置 ORIN 环境创建 FGVC-PIM 虚拟环境安装 PyTorch安装 torchvision安装其他依赖包 配置 ORIN 环境 首先先配置 ORIN 的环境&#xff0c;可以参考这个链接&#xff1a; Jetson AGX …...

mybatisplus和mybatis兼容问题

Invalid bound statement (not found) 错误 原xml配置 <bean id"sqlSessionFactory" class"org.mybatis.spring.SqlSessionFactoryBean"><property name"mapperLocations" value"classpath:/META-INF/mapper/*.xml"/>&l…...

nodejs安装使用React

1、react安装 首先&#xff0c;确保电脑上具备nodejs环境&#xff0c;之后用 winr 呼出控制台&#xff0c;输入 cmd 命令弹出cmd控制台&#xff08;小黑框&#xff09;之后在默认路径输入如下代码 npm i -g create-react-app //全局安装react环境无需选择特定文件夹安装成功后…...

防御性编程,可能是导致被裁员的更大的原因,别被误导了

裁员与反裁员是当前IT界一个经典的话题&#xff0c;作为打工者的猿人常常讨论了N多的防御性编程&#xff0c;代码不可读、代码不好改、代码深度嵌套、代码留bug等等。 其实防御性编程只会让决策者加速解耦你与业务系统&#xff1a; 1、增加代码走查的环节&#xff08;增加成本…...

Unity与鼠标相关的事件(自己记忆用)

1. OnMouseDown&#xff1a;当用户按下鼠标按钮时调用。 - 参数&#xff1a;MouseEvent&#xff0c;可以用来确定哪个鼠标按钮被按下。 2. OnMouseUp&#xff1a;当用户释放鼠标按钮时调用。 - 参数&#xff1a;MouseEvent&#xff0c;可以用来确定哪个鼠标按钮被释放。…...

模型权重下载方法

下载方法1&#xff1a;git lfs下载 1、在hf-mirror.com中搜索模型&#xff0c;如搜索text2vec-large-chinese&#xff0c; 点击模型进入页面&#xff1a;https://hf-mirror.com/GanymedeNil/text2vec-large-chinese/tree/main 2、git lfs install 3、git clone https://hf-mir…...

JS基础之 数据浅拷贝与深拷贝

一、拷贝背景 JS引用数据类型有两类&#xff1a;基本数据类型和引用数据类型&#xff1b; 基本类型&#xff1a;String&#xff0c;Number&#xff0c;Boolean&#xff0c;Null&#xff0c;Undefined&#xff0c;symbol这6种基本数据类型它们是直接按值存放的&#xff0c;所以…...

FFmpeg开发笔记(十四)音频重采样的缓存

FFmpeg在很多地方都运用了缓存机制&#xff0c;比如《FFmpeg开发实战&#xff1a;从零基础到短视频上线》一书的“3.3.2 对视频流重新编码”介绍了编解码的数据缓存&#xff0c;不单是视频编码过程和视频解码过程有缓存&#xff0c;甚至连音频重采样都用到了缓存。 也就是说&a…...

详解Python面向对象编程(一)

类和对象 面向过程——怎么做&#xff1f; &#xff08;1&#xff09;把完成某一需求的所有步骤、从头到尾&#xff0c;逐步实现 &#xff08;2&#xff09;根据开发需求&#xff0c;将某些功能独立的代码块封装成一个又一个的函数 &#xff08;3&#xff09;最后完成的代码&a…...

一文带你完整了解Go语言IO基础库

作者 | 百度小程序团队 导读 introduction 对于刚接触Golang学习的同学&#xff0c;估计比较难掌握的知识点之一就是文件IO处理&#xff0c;光在基础库里会发现 golang除了io包提供文件处理外&#xff0c;os包&#xff0c;http包&#xff0c;embed包都有提供类似的处理&#xf…...

Java基于微信小程序的校园请假系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#…...

Expert Prompting-引导LLM成为杰出专家

ExpertPrompting: Instructing Large Language Models to be Distinguished Experts 如果适当设计提示&#xff0c;对齐的大型语言模型&#xff08;LLM&#xff09;的回答质量可以显著提高。在本文中&#xff0c;我们提出了ExpertPrompting&#xff0c;以激发LLM作为杰出专家回…...

Element-Plus下拉菜单边框去除教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…...

免费redis可视化工具windows/mac都可以使用,开源免费

官方地址&#xff1a;RedisInsight | The Best Redis GUI github开源地址&#xff1a;GitHub - RedisInsight/RedisDesktopManager Redis Desktop Manager – Redis可视化管理工具、redis图形化管理工具、redis可视化客户端、redis集群管理工具。 官方下载方式 滚动到页面底…...

PHPCMS v9城市分站插件

PHPCMS自带的有多站点功能&#xff0c;但是用过的朋友都知道&#xff0c;自带的多站点功能有很多的不方便之处&#xff0c;例如站点栏目没法公用&#xff0c;每个站点都需要创建模型、每个站点都需要单独添加内容&#xff0c;还有站点必须静态化。如果你内容很多这些功能当然无…...

学习几个地图组件(基于react)

去年开发时用的公司封装的地图组件&#xff0c;挺方便的&#xff0c;但是拓展性不强&#xff0c;所以看看有哪些优秀的开源地图组件吧 1、React Leaflet 介绍&#xff1a;开源的JavaScript库&#xff0c;用于在web上制作交互式地图&#xff0c;允许你使用React组件的方式在应…...

【测试开发学习历程】计算机编程语言

前言&#xff1a; 学习完数据库&#xff0c;我们便要进入到编程语言的内容当中了。 这里先对编程语言写出大致的分类&#xff0c; 在这之后&#xff0c;我们会以Python为重点&#xff0c; 开始测试开发为重点的编程语言学习。 目录 1 计算机编程语言的发展 2 语言的分类…...

动态内存管理-传值调用错题解析

首先我们来看这个错误代码 首先我们看代码逻辑&#xff0c;首先main函数调用test&#xff0c;test接收的是void类型&#xff0c;设置一个指针变量&#xff0c;指向null&#xff0c;传递给get函数&#xff0c;也就是传递一个空指针给getmemory函数&#xff0c;这个函数接收了&a…...

Java特性之设计模式【装饰器模式】

一、装饰器模式 概述 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。这种类型的设计模式属于结构型模式&#xff0c;它是作为现有的类的一个包装 装饰器模式通过将对象包装在装饰器类中&#xff0c;以…...

Leetcode算法题笔记(2)

目录 图论51. 岛屿数量解法一 52. 腐烂的橘子解法一 53. 课程表解法一 54. 实现 Trie (前缀树)解法一 回溯55. 全排列解法一 56. 子集解法一解法二 57. 电话号码的字母组合解法一 58. 组合总和解法一解法二 59. 括号生成解法一解法二 60. 单词搜索解法一 61. 分割回文串解法一 …...

二手车交易网站|基于JSP技术+ Mysql+Java+ B/S结构的二手车交易网站设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…...

lora-scripts 训练IP形象

CodeWithGPU | 能复现才是好算法CodeWithGPU | GitHub AI算法复现社区&#xff0c;能复现才是好算法https://www.codewithgpu.com/i/Akegarasu/lora-scripts/lora-trainstable-diffusion打造自己的lora模型&#xff08;使用lora-scripts&#xff09;-CSDN博客文章浏览阅读1.1k次…...

Acwing 503. 借教室

Problem: 503. 借教室 文章目录 思路解题方法复杂度Code 思路 这是一个二分查找问题。我们需要找到最大的借教室数量&#xff0c;使得每个教室的借用时间不超过其可用时间。我们可以通过二分查找来找到这个最大的借教室数量。 解题方法 我们首先对所有的借教室请求按照结束时间…...