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

Linux——Mysql索引和事务

目录

一,Mysql索引介绍

1,索引概述

1,索引的优点

2,索引的缺点

2,索引作用

3,索引分类

普通索引

唯一索引

主键索引

组合索引

全文索引

4,查看索引

5,删除索引

6,索引的应用场景

7,不适合使用索引的场景

二,Mysql事务

1,事务的四大特性(ACID)

2,事务控制语句

3,mysql事务的隔离级别

 4,使用mysql事务

一,Mysql索引介绍

1,索引概述

MySQL 索引是一种用于提高数据库查询效率的数据结构,

  • 就像书籍的目录一样,能帮助数据库快速定位到所需的数据,而不必全表扫描。例如,在一个包含大量用户信息的表中,如果经常要根据用户姓名来查询记录,那么为 “姓名” 字段建立索引后,查询速度会显著提升。
  • 原理:索引通常是基于 B 树(B - Tree)或哈希表等数据结构来实现的。以 B 树为例,它将数据按照一定的规则组织成树形结构,节点中的数据是有序排列的。当进行查询时,数据库可以通过比较查询值与节点中的数据,快速决定是在当前节点的左子树还是右子树继续查找,从而大大减少了查找的范围和时间。

1,索引的优点

(1),提高查询速度

  • 索引可以显著加快数据检索速度,特别是对大表查询
  • 类似于书籍的目录,可以快速定位到所需数据

(2),加速表连接

  • 在多表连接操作时,索引能极大提高连接效率

(3),保证数据唯一性

  • 唯一索引可以确保列中数据的唯一性

(4),优化排序和分组

  • 对索引列进行ORDER BY或GROUP BY操作时效率更高

(5),减少服务器扫描1数据量

  • 数据库引擎可以跳过不必要的数据行

2,索引的缺点

(1):占用存储空间

  • 索引需要额外的磁盘空间存储
  • 对于大型表,索引可能占用相当可观的存储

(2):减低写入性能

  • 插入、更新和删除操作需要同时维护索引
  • 每次数据修改都可能需要更新多个索引

(3):维护成本

  • 索引需要定期维护以保持高效
  • 随着数据变化,索引可能变得碎片化

(4):优化器选择问题

  • 有时查询优化器可能选择不理想的索引
  • 需要DBA监控和调整索引使用

(5):设计复杂性

  • 需要合理设计索引策略,过多或不当的索引反而会降低性能

2,索引作用

3,索引分类

在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令 MySQL 的查询和运行更加高效。索引是快速搜索的关键。MySQL 索引的建立对于 MySQL 的高效运行是非常重要的。

     从物理存储的角度来划分,索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索更快。
从逻辑的角度来划分,索引分为普通索引、唯一索引、主键索引、组合索引和全文索引

  • 普通索引

普通索引是最基本的索引,它没有任何限制,也是大多数情况下用到的索引

##准备创建索引的库和表
create database auth;             ##创建auth库
use auth;                        
create table users (id int(10),user_name char(20),user_pass char(50));    ##创建表##直接创建索引:语法:create index 索引名 on 表名 索引的值;
create index aaa on users(user_name(20));##修改表结构添加索引
alter table users(表名) add index bbb(索引名) (user_pass(50) "表中的值");user_name(20)其中 20 是可选项。如果忽略 20 的值,则使用整个列的值作为索引。如果指定使用列前的 20个字符来创建索引,就是使用列的一部分来创建索引,这样有利于减小索引文件的大小,节省索引列所占的空间。在某些情况下,只能对列的前缀进行索引。索引列的长度有一个最大上限255个字节(MyISAM和 InnoDB 表的最大上限为 1000 个字节),如果索引列的长度超过了这个上限,就只能用列的前缀进行索引。另外,BLOB或TEXT类型的列也必须使用前缀索引。

 

  • 唯一索引

唯一索引与普通索引类似,不同的就是:唯一索引的索引列的值必须唯一,但允许有空值(注意和主键不同)。如果是组合索引,则列值的组合必须唯一。唯一索引创建方法和普通索引类似。

##创建唯一索引
create unique index bbb on users(id);
mysql> create unique index bbb on users(id);mysql> show index from users\G             ##查看users表的索引
*************************** 1. row ***************************Table: usersNon_unique: 0Key_name: bbbSeq_in_index: 1Column_name: idCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: YESIndex_type: BTREEComment: 
Index_comment: Visible: YESExpression: NULL
1 row in set (0.01 sec)##修改表结构的时候添加唯一索引:
alter table users add unique ccc(user_name);

 

  • 主键索引

主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值般是在建表的时候同时创建主键索引。

创建主键语法:

create table 表名 (列名 数据类型 primary key,);

##创建主键索引,表名为students
mysql> CREATE TABLE students (->     student_id INT PRIMARY KEY,->     name VARCHAR(50),->     age INT-> );
Query OK, 0 rows affected (0.03 sec)mysql> show index from students\G      #查看表中的主键信息
*************************** 1. row ***************************Table: studentsNon_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: student_idCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: Index_type: BTREEComment: 
Index_comment: Visible: YESExpression: NULL
1 row in set (0.00 sec)

 

  • 组合索引

平时用的 SQL 查询语句一般都有比较多的限制条件,所以为了进一步榨取MySQL 的效率,就要考虑建立组合索引。在组合索引的创建中,有两种场景,即为单列索引和多列索引。

语法:

   CREATE TABLE 表名 (
    列1 数据类型,
    列2 数据类型,
    ...,
    INDEX 索引名 (列1, 列2, ...)
);

 

mysql> CREATE TABLE orders (->     order_id INT,->     customer_id INT,->     order_date DATE,->     INDEX idx_customer_order (customer_id, order_date)-> );mysql> show index from ordes\G        ##查看创建的组合索引
ERROR 1146 (42S02): Table 'auth.ordes' doesn't exist
mysql> show index from orders\G
*************************** 1. row ***************************Table: ordersNon_unique: 1Key_name: idx_customer_orderSeq_in_index: 1Column_name: customer_idCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: YESIndex_type: BTREEComment: 
Index_comment: Visible: YESExpression: NULL
*************************** 2. row ***************************Table: ordersNon_unique: 1Key_name: idx_customer_orderSeq_in_index: 2Column_name: order_dateCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: YESIndex_type: BTREEComment: 
Index_comment: Visible: YESExpression: NULL
2 rows in set (0.01 sec)

 

  • 全文索引

对于较大的数据集,将资料输入一个没有FULLTEXT 索引的表中,然后创建索引,其速度比把资料输入现有FULLTEXT 索引的速度更快。不过切记对于大容量的数据表,生成全文索引是一个非常消耗时间、非常消耗硬盘空间的做法。

语法:

CREATE TABLE 表名 (
    列1 数据类型,
    列2 数据类型,
    ...,
    FULLTEXT INDEX 索引名 (列名) [WITH PARSER ngram]
) ENGINE=InnoDB;

 

##创建全文索引
mysql> CREATE TABLE articles (->     id INT AUTO_INCREMENT PRIMARY KEY,->     title VARCHAR(200),->     content TEXT,->     FULLTEXT INDEX ft_idx_title_content (title, content)-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.05 sec)##查看全文索引
mysql> show index from articles\G
*************************** 1. row ***************************Table: articlesNon_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: idCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: Index_type: BTREEComment: 
Index_comment: Visible: YESExpression: NULL
....../省略部分内容

4,查看索引

MySQL 数据表索引已经创建好了,那么如何才能查看刚刚创建的索引?或者怎么去查看表内已经存在的索引?有以下两种查看当前索引的方式。

##查看某个表的索引

show index from 表名;     

show keys from 表名

mysql> show index from users\G             ##查看users表的索引
*************************** 1. row ***************************Table: users                 ##表的名称Non_unique: 0                     ##如果索引不能包括重复词,则为0;如果可以,则为1。Key_name: bbb                   ##索引的名称Seq_in_index: 1                     ##索引中的列序号,从 1开始。Column_name: id                    ##列名称Collation: A                     ##列以什么方式存储在索引中。在 MySQL 中,有值'A’(升序)或 NULL(无分类)。Cardinality: 0                     ##索引中唯一值数目的估计值。通过运行 ANALYZE TABLE 或myisamchk-a 可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。Sub_part: NULL                  ##如果列只是被部分地编入索引,则为被编入索引的字符的数目。
如果整列被编入索引,则为 NULL。Packed: NULL                  ##如果列含有 NULL,则含有YES。如果没有,则该列含有 NO。Index_type: BTREE                 ##用过的索引方法(BTREE,FULLTEXT, HASH,RTREE)。Comment:                       ##备注。

5,删除索引

索引在创建之后,是会占用一定的磁盘空间的,因此表内如果有不再使用的索引从数据库性能方面考虑,最好是删除无用索引。索引的删除有如下两种方法。

drop index 索引名 on 表名;

alter table 表名 drop index 索引名;

6,索引的应用场景

  • 快速查找:在大型数据库表中,通过索引可以快速定位到满足特定条件的数据行。例如,在一个包含数百万条记录的用户表中,根据用户 ID 或用户名进行查询时,索引可以大大减少查询时间。
  • 多条件查询:当查询涉及多个条件时,索引可以帮助数据库快速定位到满足所有条件的数据。例如,在一个订单表中,查询特定日期范围内、特定客户的订单,通过对订单日期和客户 ID 建立索引,可以快速找到符合条件的订单记录。
  • 快速排序:索引可以按照特定的列进行排序,从而加快数据的排序速度。例如,在一个产品表中,按照价格对产品进行排序,如果价格列上有索引,数据库可以直接使用索引来快速获取排序后的结果,而无需对整个表进行排序操作。
  • 分组排序:在进行分组查询时,索引也可以帮助提高排序效率。例如,在一个销售表中,按照地区对销售数据进行分组,并对每个地区的销售额进行排序。通过对地区列和销售额列建立索引,可以快速完成分组和排序操作。

7,不适合使用索引的场景

  • 数据量小的表:当表中的数据量较少时,全表扫描的成本很低,使用索引可能会增加额外的开销,而不会带来明显的性能提升。例如,一个只有几十条记录的表,直接全表扫描查找数据可能比通过索引查找更快,因为索引的维护和查找本身也需要消耗一定的资源。
  • 频繁更新的表:对于频繁进行插入、更新和删除操作的表,索引的维护成本较高。每次数据发生变化时,都需要更新相应的索引,这会增加数据库的负担,降低数据更新的性能。例如,在一个实时交易系统中,交易记录表可能会频繁地插入新记录,如果为该表的每个列都建立索引,那么每次插入新交易记录时,都需要更新多个索引,这会大大影响系统的插入性能。

二,Mysql事务

MySQL 事务是数据库管理系统执行过程中的一个逻辑单位,由一组 SQL 语句组成,这些语句要么全部成功执行,要么全部不执行。

1,事务的四大特性(ACID)

  • 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会停留在中间某个环节。如果事务执行过程中发生错误,会被回滚到事务开始前的状态。
  • 一致性(Consistency):事务将数据库从一种一致状态转换到另一种一致状态。例如,在转账操作中,无论事务是否成功,转账者和收款者的总金额应该保持不变。
  • 隔离性(Isolation):多个事务并发执行时,一个事务的执行不能被其他事务干扰,每个事务都感觉不到系统中其他事务在并发执行。
  • 持久性(Durability):事务一旦提交,它对数据库的改变就应该是永久性的,不会因系统故障而丢失。

2,事务控制语句

  • BEGIN 或 START TRANSACTION:显式地开始一个事务。
  • COMMIT:提交事务,将事务中所有的操作永久保存到数据库中。
  • ROLLBACK:回滚事务,撤销事务中所有未提交的操作。
  • SAVEPOINT:在事务中创建保存点,方便部分回滚。
  • RELEASE SAVEPOINT:删除指定的保存点。
  • ROLLBACK TO SAVEPOINT:将事务回滚到指定的保存点。

3,mysql事务的隔离级别

MySQL 提供了四种隔离级别,用于控制事务之间的可见性和干扰程度:

  • READ UNCOMMITTED(读未提交):最低的隔离级别,允许一个事务读取另一个事务未提交的数据,可能会导致脏读、不可重复读和幻读问题。
  • READ COMMITTED(读已提交):一个事务只能读取另一个事务已经提交的数据,避免了脏读,但仍可能出现不可重复读和幻读。
  • REPEATABLE READ(可重复读):MySQL 的默认隔离级别,确保在同一个事务中多次读取同一数据的结果是一致的,避免了脏读和不可重复读,但可能存在幻读。
  • SERIALIZABLE(串行化):最高的隔离级别,强制事务串行执行,避免了所有的并发问题,但会降低数据库的并发性能。

 4,使用mysql事务

提交事务:

commit;

回滚事务;

rollback;

开始事务:

begin;

commit;

自动提交事务:

set autocommit=0   禁止自动提交

set autocommit=0   ##开启自动提交

mysql> set autocommit=0             ##关闭自动提交-> ;
Query OK, 0 rows affected (0.00 sec)mysql> insert into users value(2,'lisi','123456');    ##插入一个数据
Query OK, 1 row affected (0.00 sec)mysql> select * from users;               ##查看表中的内容
+------+-----------+-----------+
| id   | user_name | user_pass |
+------+-----------+-----------+
|    1 | zhangsan  | 123456    |
|    2 | lisi      | 123456    |
+------+-----------+-----------+
2 rows in set (0.00 sec)mysql> rollback;                            ##事务回滚
Query OK, 0 rows affected (0.00 sec)mysql> select * from users;                ##回滚后数据会消失
+------+-----------+-----------+
| id   | user_name | user_pass |
+------+-----------+-----------+
|    1 | zhangsan  | 123456    |
+------+-----------+-----------+
1 row in set (0.00 sec)

 

mysql> begin;                                  ##开启事务
Query OK, 0 rows affected (0.00 sec)mysql> insert into users value(3,'aaaa','123456');
Query OK, 1 row affected (0.00 sec)mysql> insert into users value(4,'bbb','123456');
Query OK, 1 row affected (0.00 sec)mysql> commit;                              ##结束事务
Query OK, 0 rows affected (0.00 sec)mysql> select * from users;                   ##查看表中的内容
+------+-----------+-----------+
| id   | user_name | user_pass |
+------+-----------+-----------+
|    1 | zhangsan  | 123456    |
|    3 | aaaa      | 123456    |
|    4 | bbb       | 123456    |
+------+-----------+-----------+
3 rows in set (0.00 sec)

相关文章:

Linux——Mysql索引和事务

目录 一,Mysql索引介绍 1,索引概述 1,索引的优点 2,索引的缺点 2,索引作用 3,索引分类 普通索引 唯一索引 主键索引 组合索引 全文索引 4,查看索引 5,删除索引 6&…...

vim 查看复杂的宏扩展

在一些复杂项目中,使用宏可以简化代码。但是对于刚接触项目的人来说,分析层层嵌套的宏,是件头疼的事情。 使用 vim 的多窗口功能,可以为此提供一些帮助。 如下图,分析4层嵌套的宏,DEFINE_I440FX_MACHINE -…...

【计算机视觉】OpenCV项目实战:基于OpenCV的图像分割技术深度解析与实践指南

基于OpenCV的图像分割技术深度解析与实践指南 项目概述与技术背景项目核心特点传统分割算法分类 环境配置与项目结构系统要求安装步骤项目结构解析 核心算法实现解析1. 阈值分割(Otsu方法)2. Canny边缘检测3. 分水岭算法 实战应用指南1. 基础分割流程2. …...

线性表-顺序表(Sequential List)

1 线性表 1.1 顺序表(Sequential List) 顺序表并不难理解,主要是知道顺序表是在内存中连续存储的一段数据,知道这个后,相应的算法也就非常简单了。 线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的…...

《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-俄罗斯方块:用旋转矩阵打造经典

《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-🎮 俄罗斯方块:用旋转矩阵打造经典 🧊 大家好!今天我将带大家用MATLAB实现经典的俄罗斯方块游戏。我们将从数学原理出发…...

通过user-agent来源判断阻止爬虫访问网站,并防止生成[ error ] NULL日志

一、TP5.0通过行为&#xff08;Behavior&#xff09;拦截爬虫并避免生成 [ error ] NULL 错误日志 1. 创建行为类&#xff08;拦截爬虫&#xff09; 在 application/common/behavior 目录下新建BlockBot.php &#xff0c;用于识别并拦截爬虫请求&#xff1a; <?php name…...

微服务的“迷宫” - 我们为何需要服务网格?

微服务的“迷宫” - 我们为何需要服务网格? 你好!欢迎来到我们的服务网格探索之旅。近年来,“微服务架构”无疑是软件开发领域最热门的词汇之一。它将庞大的单体应用拆分成一组小而独立的、可以独立开发、部署和扩展的服务单元,带来了前所未有的敏捷性和弹性。开发团队可以…...

Ubuntu 安装 HAProxy

HAProxy 是什么 HAProxy&#xff08;High Availability Proxy&#xff09; 是一个 高性能、高可用的 TCP 和 HTTP 负载均衡器与代理服务器。 HAProxy 的特点 特性说明支持协议HTTP、HTTPS、TCP高性能使用 C 语言编写&#xff0c;性能极高高可用与 Keepalived 配合可实现主备健…...

VUE CLI - 使用VUE脚手架创建前端项目工程

前言 前端从这里开始&#xff0c;本文将介绍如何使用VUE脚手架创建前端工程项目 1.预准备&#xff08;编辑器和管理器&#xff09; 编辑器&#xff1a;推荐使用Vscode&#xff0c;WebStorm&#xff0c;或者Hbuilder&#xff08;适合刚开始练手使用&#xff09;&#xff0c;个…...

Nginx高级配置

目录 一.网页的状态页 二. Nginx第三方模块 2.1 echo模块 三. 变量 3.1 内置变量 3.2 自定义变量 四. 自定义访问日志 (优化) 4.1 自定义访问日志的格式 4.2 自定义json 格式日志 五. Nginx压缩功能 六 . HTTPS 功能 6.1 https概述 6.2 配置实例-----自签名证…...

Docker镜像搬运工:深入解析export与import,实现容器环境无缝迁移!

Docker作为现代开发运维的利器&#xff0c;其镜像和容器的管理技巧直接影响效率。当我们需要跨环境迁移容器状态时&#xff0c;docker export和docker import这对组合命令就能大显身手。本文带你彻底搞懂它们的核心逻辑、使用场景及避坑指南&#xff01; 一、Docker export&…...

数字孪生实战笔记(1)数字孪生的含义、应用及技术体系

一、含义 数字孪生&#xff08;Digital Twin&#xff09;是一种通过数字化模型在虚拟世界中实时映射和模拟物理实体、系统或过程的技术。它的核心目的是通过对现实对象的建模、感知、分析和预测&#xff0c;实现对物理世界的全面感知、智能控制和优化决策。数字孪生 实体对象 …...

计算机网络 4-2-2 网络层(IPv4)

2.7 网络地址转换NAT 引入端口号&#xff1a;IP地址端口号→一个特定的进程&#xff0c;&#xff08;不同主机可能存在相同端口号&#xff09; 网络层实现了“主机到主机”的通信。网络层在IP数据报的首部&#xff0c;指明源IP地址、目的IP地址 传输层实现了“端到端” &#…...

第二个简单的SpringBoot和Vue前后端全栈的todoapp案例

项目源于哔哩哔哩&#xff0c;按视频手敲了一下&#xff0c;补充上代码和一些细节。 全栈项目实践&#xff1a;1小时快速入门SpringBootvue3element-plus_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LH4y1w7Nd/?spm_id_from333.1387.favlist.content.click&vd_…...

探秘 Canva AI 图像生成器:重塑设计创作新范式

Canva 凭借简洁易用的界面和海量模板资源&#xff0c;早已成为设计师和普通用户的心头好。而 Canva AI 图像生成器的推出&#xff0c;更是为设计领域带来了一场深刻变革&#xff0c;以智能化的手段重塑了图像创作的方式与边界。 技术内核&#xff1a;AI 如何驱动图像生成 Can…...

栈应用:辅助站(c++)

干货 今天讲讲最大辅助栈和最小辅助栈 主栈进入元素的时候 最大辅助栈:保证新元素大于等于(辅助栈)顶的时候&#xff0c;再进入辅助栈这样就能保证最大辅助栈的栈顶元素 是主栈中的最大值 主栈出栈的时候 最大辅助栈:主栈出栈元素如果等于(辅助栈)的栈顶元素&#xff0c;再…...

AI时代的数据可视化:未来已来

你有没有想过&#xff0c;数据可视化在未来会变成什么样&#xff1f;随着人工智能&#xff08;AI&#xff09;的飞速发展&#xff0c;数据可视化已经不再是简单的图表和图形&#xff0c;而是一个充满无限可能的智能领域。AI时代的可视化不仅能自动解读数据&#xff0c;还能预测…...

常见音频主控芯片以及相关厂家总结

音频主控芯片是音频设备&#xff08;如蓝牙耳机、音箱、功放等&#xff09;的核心组件&#xff0c;负责音频信号的解码、编码、处理和传输。以下是常见的音频主控芯片及其相关厂家&#xff0c;按应用领域分类&#xff1a; 蓝牙音频芯片 主要用于无线耳机、音箱等设备&#xff0…...

湖仓一体架构在金融典型数据分析场景中的实践

在数字经济与金融科技深度融合的今天&#xff0c;数据已成为金融机构的核心战略资产。然而&#xff0c;传统数据架构面临着三大困局&#xff0c;制约着金融机构数据价值的充分释放。 一、需求驱动更多银行数据分析场景 金融机构&#xff0c;特别是银行业&#xff0c;面临着双重…...

VBA —— 学习Day5

子程序与函数 子程序&#xff1a;实现特定功能的程序代码块 子程序语法&#xff1a; [修饰符] Sub 子程序名称([参数1&#xff0c;参数2&#xff0c;参数3]) 代码块 End Sub 子程序如何调用&#xff1a; 1 . 子程序名 [参数1&#xff0c;参数2&#xff0c;...] 2. Cal…...

Flink 实时数据一致性与 Exactly-Once 语义保障实战

在构建企业级实时数仓的过程中,“数据一致性” 是保障指标准确性的核心能力,尤其是在金融、电商、医疗等对数据敏感度极高的场景中。Flink 作为流批一体的实时计算引擎,其内建的 Exactly-Once 语义为我们提供了强有力的保障机制。本篇将围绕如何实现端到端的数据一致性、如何…...

Java云原生到底是啥,有哪些技术

☁️ Java云原生&#xff1a;程序员の修仙飞升指南&#xff08;附渡劫技巧&#xff09; 一、修仙世界观&#xff1a;传统程序 vs 云原生程序 &#x1f3e1; 传统Java程序&#xff08;老宅院&#xff09; 特点&#xff1a;单体大瓦房、扩建要拆墙&#xff08;耦合度高&#xf…...

IPM IMI111T-026H 高效风扇控制板

概述&#xff1a; REF-MHA50WIMI111T 是一款专为风扇驱动设计的参考开发板&#xff0c;搭载了英飞凌的IMI111T-026H iMOTION™智能功率模块(IPM)。这个模块集成了运动控制引擎(MCE)、三相栅极驱动器和基于IGBT的功率级&#xff0c;全部封装在一个紧凑的DSO22封装中。REF-MHA50…...

JavaScript基础-局部作用域

在JavaScript中&#xff0c;理解不同种类的作用域是掌握这门语言的关键之一。作用域决定了变量和函数的可访问性&#xff08;即可见性和生命周期&#xff09;。与全局作用域相对应的是局部作用域&#xff0c;它限制了变量和函数只能在其定义的特定范围内被访问。本文将深入探讨…...

[特殊字符]Meilisearch:AI驱动的现代搜索引擎

前言 大家好&#xff0c;我是MAI麦造&#xff01; 上文介绍一了Manticore Search 这款轻量级的搜索引擎&#xff0c;这次又有了新的发现&#xff01;传送门&#xff1a; Elasticsearch太重&#xff1f;它的超轻量的替代品找到了&#xff01; 这是一个让我超级兴奋的AI搜索引…...

K8S Svc Port-forward 访问方式

在 Kubernetes 中&#xff0c;kubectl port-forward 是一种 本地与集群内资源&#xff08;Pod/Service&#xff09;建立临时网络隧道 的访问方式&#xff0c;无需暴露服务到公网&#xff0c;适合开发调试、临时访问等场景。以下是详细使用方法及注意事项&#xff1a; 1. 基础用…...

SD06_前后端分离项目部署流程(采用Nginx)

本文档详细描述了如何在Ubuntu 20.04服务器上从零开始部署Tlias前后端分离系统。Tlias系统由Spring Boot后端&#xff08;tlias-web-management&#xff09;和Vue前端&#xff08;vue-tlias-management&#xff09;组成。 目录 环境准备安装MySQL数据库部署后端项目部署前端项…...

计算机网络:家庭路由器WiFi信号的发射和手机终端接收信号原理?

WiFi路由器与手机之间的信号传输涉及多个技术层面的协作,以下是其工作原理的详细步骤: 一、数据封装与协议处理 应用层数据生成 用户操作(如浏览网页、视频播放)产生数据包,经TCP/IP协议栈逐层封装,添加IP地址(网络层)和MAC地址(数据链路层)。协议封装 数据包被封装…...

【Redis】string

文章目录 string 字符串常用命令设置和获取setgetmget & mset 计数操作incr & incrbydecr & decrbyincrbyfloat 字符串操作appendstrlengetrangesetrange string 字符串 关于 Redis 的字符串&#xff0c;有几点需要注意 Redis 所有的 key 的类型都是字符串类型va…...

vue3的响应式设计原理

Vue 3 的响应式设计是其核心特性之一&#xff0c;依赖于 Proxy 和 依赖收集机制&#xff0c;相比 Vue 2 的 Object.defineProperty&#xff0c;Vue 3 的响应式系统更加高效、灵活且易于维护。 以下是 Vue 3 响应式设计的核心原理&#xff1a; 一、核心机制概览 使用 Proxy 实现…...

学习黑客5 分钟深入浅出理解Linux Logs [特殊字符]

5 分钟深入浅出理解Linux Logs &#x1f4dd; 大家好&#xff01;今天我们将探索Linux系统中的日志机制——这是系统管理和安全分析的重要组成部分。在网络安全学习特别是TryHackMe平台上的挑战中&#xff0c;理解和分析日志是发现入侵痕迹、追踪攻击者行为和收集证据的关键技…...

【Docker系列】docker inspect查看容器部署位置

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

journalctl使用

journalctl 可以查看很多服务的日志&#xff0c;比如 docker&#xff0c;ollama 等。 1. 查看 xx 服务的最新日志&#xff08;实时滚动&#xff09; sudo journalctl -u docker -f -f 参数表示 跟随&#xff08;follow&#xff09;&#xff0c;会持续输出最新日志&#xff0…...

Satori:元动作 + 内建搜索机制,实现超级推理能力

Satori&#xff1a;元动作 内建搜索机制&#xff0c;实现超级推理能力 论文大纲一、背景&#xff1a;LLM 推理增强的三类方法1. 基于大规模监督微调&#xff08;SFT&#xff09;的推理增强2. 借助外部机制在推理时进行搜索 (RLHF / 多模型 / 工具)3. 现有局限性总结 二、Sator…...

基于语言模型的依存关系分句 和 主题变换检测(基于词频和句段得分)的 意思

&#x1f9e0; 一、基于语言模型的依存关系分句&#xff08;Dependency-based Segmentation&#xff09; ✅ 说人话&#xff1a; 用语言模型判断句子里的语法结构&#xff08;谁依赖谁&#xff09;&#xff0c;找到合理的“断点”&#xff0c;把太长的句子拆成语法上更自然的小…...

计算机体系结构一些笔记

1、异构计算&#xff1a;CPU也像人类社会一样存在专业分工。 异构计算&#xff08;Heterogeneous Computing&#xff09;是指不同类型的计算单元合作完 成计算任务。每个计算单元采用不同的架构&#xff0c;分别擅长处理某一种类型 的计算任务。整个计算任务分解为小的单位&…...

Go语言——goflow工作流使用

一、引入依赖 这个很坑&#xff0c;他不允许连接带密码的redis&#xff0c;只能使用不带密码的redis&#xff0c;要带密码的话得自己改一下源代码&#xff0c;无语 go get github.com/s8sg/goflow二、画出我们的工作流程 三、编写代码 package mainimport ("encoding/j…...

理性地倾听与表达:检索算法的语言学改进

论文标题 Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval 论文地址 https://arxiv.org/pdf/2505.03676 代码地址 https://github.com/arthur-75/Rational-Retrieval-Acts 作者背景 巴黎萨克雷大学&#xff0c;索邦大学&#xff…...

RV1126 ROS2环境交叉编译及部署(基于官方Docker)

RV1126 ROS2环境交叉编译及部署(基于官方Docker) 0 前言1 SDK源码更新1.1 启动Docker容器1.2 更新SDK源码1.3 SDK更新问题2 ROS2编译配置3 Buildroot rootfs编译ROS2的依赖包3.1 编译问题解决4 使用Docker交叉编译ROS24.1 准备Linux(Ubuntu) PC机的依赖环境4.1.1 Ubuntu PC机…...

每日脚本学习5.10 - XOR脚本

xor运算的简介 异或就是对于二进制的数据可以 进行同0异1 简单的演示 &#xff1a; 结果是 这个就是异或 异或的作用 1、比较两数是否相等 2、可以进行加密 加密就是需要key 明文 :0b010110 key : 0b1010001 这个时候就能进行加密 明文 ^ key密文 还有这个加密比…...

深圳SMT贴片加工厂制造流程解析

内容概要 作为大湾区电子制造产业链的重要节点&#xff0c;深圳SMT贴片加工厂凭借精密的生产体系与技术创新&#xff0c;构建了涵盖12道核心工序的标准化流程。从PCB基板的来料检验开始&#xff0c;通过全自动贴片机的高精度元件定位、SPI三维锡膏检测、智能温控回流焊接等关键…...

英语六级---2019.6 卷二 仔细阅读2

文章 Officials at the White House announced a new space policy focused on managing the increasing number of satellites that companies and governments are launching into space. Space Policy Directive-3 lays out general guidelines for the United States to mi…...

【小沐学GIS】基于C++绘制二维瓦片地图2D Map(QT、OpenGL、GIS)

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;OpenGL、glfw、glut、GIS&#xff09;第二期3【小沐学…...

Windows 系统 - Trae 内 终端 无法使用 node (重新配置 nodejs 路径)

想在 Trae 中尝试一下 mcp, 所以 Windows 系统下安装了 node.js. 安装成功后, 在 Windows 的 powershell 下可以 node -v, 但是在 Trae 的终端下输入 node -v 时, 识别提示不能识别 node 命令. 参考了 vscode 下的一种解决方式 VS Code 内终端无法使用 node 解决方案是相似的…...

AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本

背景 在上个月&#xff0c;有网页咨询我怎么才能获取视频中的音频并识别成文本&#xff0c;我当时给他的回答是去问一下AI&#xff0c;让AI来给你答案。 他觉得我在敷衍他&#xff0c;大骂了我一顿&#xff0c;大家觉得我的回答对吗&#xff1f; 小编心里委屈&#xff0c;我…...

springCloud/Alibaba常用中间件之Nacos服务注册与发现

文章目录 SpringCloud Alibaba:依赖版本补充六、Nacos:服务注册与发现1、下载安装Nacos2、服务注册1. 导入依赖(这里以服务提供者为例)2. 修改配置文件和主启动类3. 创建业务类4. 测试 3.服务映射1. 导入依赖2. 修改配置文件和主启动类3. 创建业务类和RestTemplate配置类用来提…...

鸿蒙 所有API缩略图鉴

从HarmonyOS NEXT Developer Preview1&#xff08;API 11&#xff09;版本开始&#xff0c;HarmonyOS SDK以 Kit 维度提供丰富、完备的开放能力&#xff0c;涵盖应用框架、应用服务、系统、媒体、AI、图形在内的六大领域&#xff0c;共计30000个API...

互联网大厂Java求职面试:AI集成场景下的技术挑战与架构设计

标题&#xff1a;互联网大厂Java求职面试&#xff1a;AI集成场景下的技术挑战与架构设计 第一幕&#xff1a;向量数据库选型与性能调优 技术总监&#xff08;严肃脸&#xff09;&#xff1a; 郑薪苦&#xff0c;我们最近在做一个基于大语言模型的企业级AI应用&#xff0c;需要…...

搜索与图论

文章目录 搜索与图论深度优先搜索 DFS[843. n-皇后问题 - AcWing题库](https://www.acwing.com/problem/content/845/) 宽度优先搜索 BFS[844. 走迷宫 - AcWing题库](https://www.acwing.com/problem/content/description/846/) 树与图的存储[846. 树的重心 - AcWing题库](http…...

【递归、搜索和回溯】二叉树中的深搜

个人主页 &#xff1a; zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 文章目录 前言1 2331. 计算布尔二叉树的值1.1 分析1.2 代码 2 129. 求根节点到叶节点数字之和2.1 分析2.2 代码 3 814. 二叉树剪枝3.1 分析3.2 代码 4 98. 验证…...