mysql数据库的索引管理
目录
一、索引的概述
1、索引的概念
2、索引的作用
3、索引的副作用
4、创建索引的原则依据
5、索引优化
6、索引的分类
7、数据文件与索引文件
二、管理数据库索引
1、查询索引
2、创建索引
2.1 创建普通索引
2.2 创建唯一索引
2.3 创建主键索引
2.4 创建组合索引
2.5 创建全文索引
3、删除索引
3.1 直接删除索引
3.2 修改表格式方式删除索引
3.3 删除主键索引
三、总结
1、索引类型
2、索引创建的三大方法
一、索引的概述
1、索引的概念
- 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)
- 使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度
- 索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容
- 索引是表中一列或者若干列值排序的方法
- 建立索引的目的是加快对表中记录的查找或排序
2、索引的作用
- 加快数据检索速度:通过索引,数据库系统可以更快地定位到需要的数据,而不必扫描整个表能够大大加快查询速率。当表很大或查询涉及到多个表时,可以成干上万倍地提高查询速度
- 加速数据排序:索引可以帮助数据库系统快速排序数据,例如在ORDER BY子句中使用索引可以提高排序的效率
- 优化连接操作:对连接操作进行优化,特别是在多表连接时,索引可以显著提升查询性能
- 约束唯一性:可以使用索引来确保某些列或列组的数值在表中是唯一的,这种约束可以通过UNIQUE索引或主键索引来实现
- 降低数据库的IO成本:当没有索引可用时,数据库可能需要进行全表扫描以找到匹配的数据。而有了索引,数据库可以避免或减少全表扫描的情况,大大减少了IO操作的次数和数据量
3、索引的副作用
-
占用存储空间:索引需要额外的存储空间。对于大型表来说,索引可能会占据相当可观的存储空间
-
降低写操作性能:当进行插入、更新和删除等写操作时,索引也需要进行维护,这可能导致写操作的性能下降。特别是对于频繁更新的列,索引维护成本较高
-
增加维护成本:随着数据的变化,索引的效率也会发生变化。因此,需要定期对索引进行优化和重建,这增加了维护成本
-
过多索引影响性能:如果表上存在过多或不必要的索引,会增加查询优化器的选择路径,可能导致性能下降
-
可能引起锁问题:在某些情况下,索引可能会引发锁问题,尤其是在并发环境中,需要谨慎处理索引以避免锁竞争
-
统计信息不准确:有时候索引的统计信息可能不准确,导致查询优化器做出不恰当的执行计划,从而影响性能
4、创建索引的原则依据
索引虽可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。
- 表的主键、外键必须有索引。因为主键具有唯一性,外键关联的是主表的主键,查询时可以快速定位
- 记录数超过300行的表应该有索引。如果没有索引,每次查询都需要把表遍历一遍,会严重影响数据库的性能
- 经常与其他表进行连接的表,在连接字段上应该建立索引
- 唯一性太差的字段不适合建立索引
- 更新太频繁地字段不适合创建索引
- 经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引
- 在经常进行 GROUP BY、ORDER BY 的字段上建立索引
- 索引应该建在选择性高的字段上
- 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引
5、索引优化
-
经常用于查询条件的列:对于经常出现在 WHERE 子句中的列,特别是用作连接条件的列,创建索引可以提高查询性能
-
频繁被用来排序的列:如果某些列经常用于排序操作(例如在ORDER BY子句中),为这些列创建索引可以加快排序操作的速度
-
用作连接条件的列:在多表连接时,连接条件的列应该建立索引,以提高连接操作的效率
-
唯一性约束列:对于需要唯一性约束的列,如主键或UNIQUE约束的列,应当创建唯一索引
-
频繁被用于聚合函数的列:如果某些列经常用于聚合函数(如SUM、AVG等),为这些列创建索引可以提高聚合查询的性能
6、索引的分类
-
B-tree索引:这是最常见的索引类型,适用于各种数据类型。B-tree索引通过对索引列的值进行排序,构建一个类似于树形结构的索引,从而加快数据的检索速度
-
哈希索引:哈希索引基于哈希算法构建,适用于等值查询,例如使用=或IN操作符的查询。相比B-tree索引,哈希索引在等值查询时具有更好的性能,但不支持范围查询和排序操作
-
全文索引:用于全文搜索的场景,例如对文本内容进行搜索。全文索引可以实现对文本内容的关键词搜索,并支持模糊匹配等操作
-
空间索引:适用于地理空间数据类型,如Point、LineString、Polygon等。空间索引可以加速地理位置相关的查询,例如查找某个区域内的所有点
-
组合索引:即将多个列组合起来创建的索引,可以同时提高多个列的查询效率,特别是在涉及多列的查询条件时
-
唯一索引:确保索引列的数值在表中是唯一的,通常用于约束某些列或列组的唯一性
-
主键索引:主键索引是一种特殊的唯一索引,用于唯一标识表中的每一行数据
以上这些索引类型可以根据不同的场景和需求选择合适的索引策略,以提高数据库的查询性能
7、数据文件与索引文件
MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“.frm”、“.MYD”和“.MYI”
“.MYD”文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm”文件在一起。
“.MYI”文件也是专属于 MyISAM 存储引擎的,主要存放 MyISAM 表的索引相关信息。对于 MyISAM 存储来说,可以被 cache 的内容主要就是来源于“.MYI”文件中。每一个MyISAM 表对应一个“.MYI”文件,存放于位置和“.frm”以及“.MYD”一样。
MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件
(frm,myd,myi)。 每个表都有且仅有这样三个文件做为 MyISAM 存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个“.MYI”文件中。
还有“.ibd”和ibdata文件,这两种文件都是用来存放 Innodb 数据的,之所以有两种文件来存放 Innodb 的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储 方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件,文件存放在和 MyISAM 数据相同的位置。如果选用共享存储表空间来存放数据,则会使用 ibdata 文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件
二、管理数据库索引
1、查询索引
方法一:show create table 表名;方法二:
show index from 表名;
show index from 表名\G; #竖向显示表索引信息方法三:
show keys from 表名;
show keys from 表名\G; #竖向显示表索引信息
注:各字段含义
字段 含义 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 备注
2、创建索引
2.1 创建普通索引
普通索引也被称为单列索引,它仅基于单个列的数值进行排序和搜索
方法一:直接创建普通索引
create index 索引名 on 表名 (列名);
create index score_index on dianzi (score);
create index name_index on dianzi (name);
#使用索引实现查询
select score from dianzi;
select name from dianzi;
#查看索引信息
show create table dianzi;
方法二:修改表结构方式添加普通索引
alter table 表名 add index 索引名 (列名);
alter table dianzi add index index_id (id);
方法三:创建表时添加索引
create table 表名 (字段1 数据类型,字段2 数据类型,...,index 索引名 (字段));
create table tongxin (id int(10),name varchar(10),cardid varchar(18),phone varchar(11),address varchar(50),remark text,index index_cardid(cardid));
#插入点数据,为普通索引查询
insert into tongxin values(1,'cxz',13938592221,14892283,'江苏南京','组长');
insert into tongxin values(2,'shd',29410875347,89422959,'江苏无锡','成员');
insert into tongxin values(3,'djs',14870235055,50964966,'江苏徐州','成员');
insert into tongxin values(4,'fhy',2950435883,98503856,'浙江杭州','组长');
insert into tongxin values(5,'tss',22857035003,285973503,'浙江宁波','成员');
insert into tongxin values(6,'xhd',24289592847,284973503,'浙江绍兴','成员');
注:
- 性能影响:虽然索引可以显著提高查询速度,但它们也会占用额外的磁盘空间,并可能降低插入、删除和更新数据的速度,因为数据库需要同时更新索引
- 选择索引列:选择哪些列作为索引应该基于查询的需要。频繁作为查询条件的列或经常出现在
join
、where
、order by
等子句中的列是创建索引的好候选- 索引管理:随着时间的推移,表结构和查询模式可能会变化,因此定期审查和调整索引是很重要的,以确保数据库的性能最优化
2.2 创建唯一索引
唯一索引(Unique Index)在MySQL数据库中是一种确保数据列中每个值都是唯一的索引。通过创建唯一索引,你可以保证某一列或列组合中的数据值不会重复,这对于维护数据的完整性非常重要,如防止同一个电子邮件地址被注册多次
- 与普通索引类似,但区别是唯一索引列的每个值都唯一
- 唯一索引允许有空值(注意和主键不同)
- 如果是用组合索引创建,则列值的组合必须唯一
- 添加唯一键将自动创建唯一索引
方法一:直接创建唯一索引
create unique index 索引名 on 表名(列名);
create unique index index_name on tongxin (name);
方法二:修改表结构方式添加唯一索引
alter table 表名 add unique 索引名 (列名);
alter table tongxin add unique index_phone (phone);
方法三:创建表时添加唯一索引
create table 表名 (字段1 数据类型,字段2 数据类型,...,unique 索引名 (列名));
create table jisj (id int(3) not null,name varchar(10),cardid char(15),unique index_cardid (cardid));
#插入点数据,方便索引查询
insert into jisj values(1,'cxz',29857012035);
insert into jisj values(2,'xsf',29857012035);
insert into jisj values(2,'xsf',32894385901);
insert into jisj values(3,'sdh',29496291384);
方法四:创建表时添加唯一键,会自动创建唯一索引
create table wulian (id int(3) not null,name varchar(10) unique key,cardid char(15));
#unique key:表此字段唯一键约束,此字段数据不可重复,一个表中可有多个唯一键
#插入点数据,方便唯一索引查询
insert into wulian values(1,'cxz',29857012035);
insert into wulian values(2,'xsf',32894385901);
insert into wulian values(3,'sdh',29496291384);
注:
- 空值处理:唯一索引允许列中存在空值(
NULL
),但是如果索引是多列的,每列的组合必须是唯一的。对于唯一索引,MySQL视多个NULL
值为不同的值,因此允许多个NULL
值存在于唯一索引列中- 性能影响:虽然唯一索引可以提高查询性能并保证数据的唯一性,但它也可能增加插入和更新操作的开销,因为每次这些操作发生时,MySQL都需要检查唯一性约束
- 使用场景:唯一索引非常适合用于需要强制数据唯一性的场景,如用户注册邮箱、身份证号码等
2.3 创建主键索引
主键索引是一种特殊的唯一索引,不仅确保索引列的数据唯一性,还能标识表中的每一行数据,必须指定为“primary key”。主键的特点包括:
- 每个表只能有一个主键
- 主键列不能有NULL值
- 主键自动创建唯一索引,确保列值的唯一性
方法一:创建表时指定主键索引
create table 表名 (字段1 数据类型,字段2 数据类型,...,primary key (列名));
create table class (id int(3) not null,name varchar(10) not null,cardid char(11) not null,primary key(id));
#插入数据,方便使用主键索引查询
insert into class values(1,'sjg',9432005023);
insert into class values(2,'sfh',2389420509);
insert into class values(2,'dkg',49848658802);
insert into class values(3,'jkd',32840437588);
方法二:修改表结构方式添加主键索引
alter table 表名 add primary key (列名);
alter table class add primary key (cardid);
alter table wulian add primary key (id);
注:
- 如果表中已经有数据,给列添加主键前需要确保该列的所有值都是唯一的,且没有NULL值。
- 考虑到性能和存储效率,主键通常设置为整型或UUID。
- 主键的选择对数据库性能有重要影响,应谨慎选择能唯一标识每行数据的列作为主键。
2.4 创建组合索引
组合索引(也称为复合索引或多列索引)是指基于表中两个或多个列创建的索引。组合索引可以提高查询性能,特别是在查询条件涉及多个列时。它按照索引中列的顺序存储数据,这使得数据库能够高效地利用索引来加速查询和排序操作
需要满足最左原则,因为select语句的 where条件是依次从左往右执行的,所以在使用select 语句查询时where条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效
方法一:创建表时指定组合索引
create table 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,……,index 索引名 (列名1,列名2,列名3,……));
create table bak (id int(10),name varchar(10),cardid varchar(18),phone varchar(11),address varchar(50),remark text,index index_bak(name,cardid,address));
#插入点数据,为组合索引查询
insert into bak values(1,'cxz',13938592221,14892283,'江苏南京','组长');
insert into bak values(2,'shd',29410875347,89422959,'江苏无锡','成员');
insert into bak values(3,'djs',14870235055,50964966,'江苏徐州','成员');
方法二:修改表结构方式添加组合索引
alter table 表名 add index 索引名 (字段1,字段2,字段3,……);
alter table wulian add index index_wulian (id,name);
注:
- 索引顺序:在定义组合索引时,列的顺序非常重要。应根据查询中最常用的列来安排索引中的列顺序
- 性能影响:虽然索引可以提高查询性能,但过多的索引会增加插入、更新和删除操作的开销,因为数据库需要维护这些索引。因此,应根据实际需要创建索引
- 前导列优化:尽可能利用索引的前导列进行查询,以充分利用组合索引的优势
2.5 创建全文索引
全文索引通过创建文本数据的索引来加速对文本的搜索查询,它会分析文本列中的内容,将文本分解成词元(tokens)或关键词,并建立一个搜索关键词的索引。这样,当进行文本搜索时,数据库可以直接利用这个索引来快速定位包含特定关键词的记录,而不是逐行扫描整个表。
全文索引可以在 CHAR、VARCHAR 或者 TEXT 类型的列上创建。每个表只允许有一个全文索引
方法一:直接创建全文索引
create fulltext index 索引名 on 表名 (列名);
create fulltext index index_address on tongxin (address);
select * from tongxin where address='浙江杭州'; #全文索引查询关键字“浙江杭州”
方法二:修改表结构方式添加全文索引
alter table 表名 add fulltext 索引名 (列名);
alter table bak add fulltext index_remark (remark);
select * from bak where remark='组长'; #使用全文索引搜索,其中关键字是“组长”
方法三:创建表时指定全文索引
create table 表名 (字段1 数据类型,字段2 数据类型,……,fulltext 索引名 (列名));
create table zhizao (id int(10),name varchar(10),cardid varchar(18),phone varchar(11),address varchar(50),remark text,index,fulltext index_address (address));
#插入点数据,为全文索引查询
insert into zhizao values(1,'cxz',13938592221,14892283,'江苏南京','组长');
insert into zhizao values(2,'shd',29410875347,89422959,'江苏无锡','成员');
insert into zhizao values(3,'djs',14870235055,50964966,'江苏盐城','成员');
select * from zhizao where address='江苏南京';
注:
- 存储引擎限制:全文索引最初只支持MyISAM存储引擎。从MySQL 5.6版本开始,InnoDB存储引擎也支持全文索引
- 性能考虑:虽然全文索引可以显著提高文本搜索的速度,但它也会占用额外的磁盘空间,并可能增加文本数据更新操作的开销
- 查询语法:使用全文索引时,可以利用
match() ... against()
语法进行搜索查询,这允许执行包含布尔文本搜索和自然语言搜索的复杂查询
3、删除索引
3.1 直接删除索引
drop index 索引名 on 表名;
drop index index_address on zhizao;
3.2 修改表格式方式删除索引
alter table 表名 drop index 索引名;
alter table bak drop index index_bak;
alter table bak drop index index_remark;
3.3 删除主键索引
alter table 表名 drop primary key;
alter table class drop primary key;
三、总结
1、索引类型
索引名称 | 键标识 | 说明 | 一张表索引数量 |
---|---|---|---|
普通索引 | key | 针对所有字段,没有特殊的需求/规则 | 可多个 |
唯一(键)索引 | unique key | 针对唯一性的字段,仅允许出现一次空值 | 可多个 |
主键索引 | primary key | 针对唯一性字段、且不可为空,同时一张表只允许包含一个主键索引 | 一个 |
组合索引 | key | 多列/多字段组合形式的索引 | 可多个 |
全文索引 | fulltext key | (varchar char text)全文搜索内容 | 可多个 |
2、索引创建的三大方法
①直接创建索引
索引名称 | 格式 |
---|---|
普通索引 | create index 索引名 on 表名 (列名); |
唯一(键)索引 | create unique index 索引名 on 表名(列名); |
主键索引 | 无 |
组合索引 | 无 |
全文索引 | create fulltext index 索引名 on 表名 (列名); |
②alter修改表结构的时候,进行add添加索引
索引名称 | 格式 |
---|---|
普通索引 | alter table 表名 add index 索引名 (列名); |
唯一(键)索引 | alter table 表名 add unique 索引名 (列名); |
主键索引 | alter table 表名 add primary key (列名); |
组合索引 | alter table 表名 add index 索引名 (字段1,字段2,字段3,……); |
全文索引 | alter table 表名 add fulltext 索引名 (列名); |
③在创建表的时候,直接指定创建索引
索引名称 | 格式 |
---|---|
普通索引 | create table 表名 (字段1 数据类型,字段2 数据类型,...,index 索引名 (字段)); |
唯一(键)索引 | create table 表名 (字段1 数据类型,字段2 数据类型,...,unique 索引名 (列名)); |
主键索引 | create table 表名 (字段1 数据类型,字段2 数据类型,...,primary key (列名)); |
组合索引 | create table 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,……,index 索引名 (列名1,列名2,列名3,……)); |
全文索引 | create table 表名 (字段1 数据类型,字段2 数据类型,……,fulltext 索引名 (列名)); |
相关文章:

mysql数据库的索引管理
目录 一、索引的概述 1、索引的概念 2、索引的作用 3、索引的副作用 4、创建索引的原则依据 5、索引优化 6、索引的分类 7、数据文件与索引文件 二、管理数据库索引 1、查询索引 2、创建索引 2.1 创建普通索引 2.2 创建唯一索引 2.3 创建主键索引 2.4 创建组合…...

VUE+Vant实现H5组织架构选人选公司组件
提醒自己: 这是之前的逻辑,或许你重新写会有更好的方法,可以参考逻辑!!! 功能介绍 1.有面包屑点击切换 2.有公司、部门、人员 3.单选、多选实现 4.编辑/回显 5.使用随意切换层级和跳转到指定层级回显等功…...

【以图搜图】GPUNPU适配万物识别模型和Milvus向量数据库
目录 以图搜图介绍项目地址Milvuscv_resnest101_general_recognition 代码使用流程结果展示模型部署环境Milvus部署及使用docker安装docker-compose安装Milvus可视化工具Attu进入网页端 Data数据示例点个赞再走呗!比心💞️ 以图搜图 • 🤖 Mo…...

迷茫了!去大厂还是创业?
大家好,我是麦叔,最近我创建了一个 学习圈子 有球友在 星球 里提问。 大厂的layout岗位和小厂的硬件工程师岗位,该如何选择? 这个问题我曾经也纠结过,不过现在的我,I am awake! 肯定是有大点大。…...

Qt源码分析: QEventLoop实现原理
QEventLoop屏蔽了底层消息循环实现细节,向上提供了与平台无关的消息/事件循环。 本文拟对Windows系统下QEventLoop的实现原理予以分析。 注1:限于研究水平,分析难免不当,欢迎批评指正。 注2:文章内容会不定期更新。 …...

痛失offer的八股
java面试八股 mysql篇: 事物的性质: 事物的性质有acid四特性。 a:automic,原子性,要么全部成功,要么全部失败,mysql的undolog,事物在执行的时候,mysql会进行一个快照读…...

【Git】第一课:Git的介绍
简介 什么是Git? Git是一个开源的分布式版本控制系统,用于跟踪代码的改变和协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建,现已成为开源软件开发中最流行的版本控制系统,没有之一。Git允许多人同时在不同的分支上工作&…...

知识蒸馏——深度学习的简化之道 !!
文章目录 前言 1、什么是知识蒸馏 2、知识蒸馏的原理 3、知识蒸馏的架构 4、应用 结论 前言 在深度学习的世界里,大型神经网络因其出色的性能和准确性而备受青睐。然而,这些网络通常包含数百万甚至数十亿个参数,使得它们在资源受限的环境下&…...
【爬虫】Selenium打开新tab页截图并关闭
如果说 你曾苦过我的甜 我愿活成你的愿 愿不枉啊 愿勇往啊 这盛世每一天 山河无恙 烟火寻常 可是你如愿的眺望 孩子们啊 安睡梦乡 像你深爱的那样 🎵 王菲《如愿》 在自动化测试和网页抓取中,Selenium WebDriver 是一个强大的工具&…...

09 事务和连接池
文章目录 properties文件连接池service层实现类dao层实现类dao层实现类 连接池类: 创建线程池静态常量,用于放连接。 创建Properties静态常量,用于解析properties文件 静态代码块中,解析properties文件,将解析结果用于创建连接池 …...

P4344 [SHOI2015] 脑洞治疗仪 线段树+二分
主要是维护一个连续区间,比较经典的题目,还要考虑一下二分的情况,否则很难处理,比较有难度。这里和序列操作一题的区别是不需要考虑1的个数,因为不需要取反。传送门https://www.luogu.com.cn/problem/P4344 #include&…...
解决大型语言模型中的幻觉问题:前沿技术的综述
大型语言模型中的幻觉问题及其解决技术综述 摘要 大型语言模型(LLM)如GPT-4、PaLM和Llama在自然语言生成能力方面取得了显著进步。然而,它们倾向于产生看似连贯但实际上不正确或与输入上下文脱节的幻觉内容,这限制了它们的可靠性和安全部署。随着LLM在…...
机器学习流程—AutoML
文章目录 机器学习流程—AutoMLAutoML工具Auto-SKLearnMLBoxTPOTRapidMinerPyCaretAuto-KerasH2OAutoML谷歌AutoML云Uber LudwigTransmogrifAIAutoGluonAutoWekaDataRobot...
Ubuntu 23.10 tar包安装和配置Elasticsearch kibana 7.13.3
目录 一、环境说明 二、准备工作 三、安装elasticsearch 3.1 安装elasticsearch 3.2 添加服务和设置开机启动 四、安装kibana 4.1. 安装kibana 4.2 添加服务和设置开机启动 出于工作需要,需要在Ubuntu 23.10系统上通过tar包方式安…...

glibc内存管理ptmalloc
1、前言 今天想谈谈ptmalloc如何为应用程序分配释放内存的,基于以下几点原因才聊它: C/C 70%的问题是内存问题。了解一点分配器原理对解决应用程序内存问题肯定有帮助。C也在用ptmalloc. 当你在C中new一个对象时,底层还是依赖glibc中的ptma…...

HarmonyOS入门学习
HarmonyOS入门学习 前言快速入门ArkTS组件基础组件Image组件Text组件TextInput 文本输入框Buttonslider 滑动组件 页面布局循环控制ForEach循环创建组件 List自定义组件创建自定义组件Builder 自定义函数 状态管理Prop和LinkProvide和ConsumeObjectLink和Observed ArkUI页面路由…...

【Mock|JS】Mock的get传参+获取参数信息
mockjs的get传参 前端请求 const { data } await axios("/video/childcomments", {params: {sort: 1,start: 2,count: 5,childCount: 6,commenIndex: 0,},});后端获取参数 使用正则匹配url /*** # 根据url获取query参数* param {Url} urlStr get请求获取参数 eg:…...
spring cloud gateway k8s优雅启停
通过配置readiness探针和preStop hook,实现优雅启动和停止(滚动部署) 1. k8s工作负载配置 readinessProbe:httpGet:path: /datetimeport: 8080scheme: HTTPinitialDelaySeconds: 30timeoutSeconds: 1periodSeconds: 30successThreshold: 1fa…...

嵌入式软件面试-linux-中高级问题
Linux系统启动过程: BIOS自检并加载引导程序。引导程序(如GRUB)加载Linux内核到内存。内核初始化硬件,加载驱动,建立内存管理。加载init进程(PID为1),通常是systemd或SysVinit。init…...
css禁用元素指针事件,鼠标穿透,点击下层元素,用`pointer-events:none;`
pointer-events: 对鼠标事件的反应 MDN pointer-events 英文 https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events 菜鸟教程 CSS pointer-events 属性 https://www.runoob.com/cssref/css3-pr-pointer-events.html 常用取值 auto 和 none pointer-events: aut…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...