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

MySQL中的通配符

1. 百分号 %

内部工作原理:
  • 代表零个、一个或多个任意字符。
  • LIKE 'A%':MySQL会从索引(如果存在)中查找所有以 "A" 开头的记录。如果没有索引,则需要扫描整个表。
  • MySQL解析器将模式转换为可执行的形式,并利用索引来加速匹配过程(如果有合适的索引)。
性能影响与优化:
  • 索引:为了提高查询效率,可以在经常用于模式匹配的列上创建索引。例如,对于 username LIKE 'A%',可以在 username 列上创建前缀索引。
  • 避免全表扫描:尽量不要在模式的开头使用通配符,因为这会导致MySQL无法利用索引而进行全表扫描。
示例与应用场景:
  • 前缀匹配:查找以特定字符串开头的所有记录。

    SELECT * FROM users WHERE username LIKE 'A%';

    这条语句会返回所有以字母 "A" 开头的用户名。

  • 后缀匹配:查找以特定字符串结尾的所有记录。

    SELECT * FROM emails WHERE email LIKE '%@example.com';

    这条语句会返回所有电子邮件地址以 @example.com 结尾的用户。

  • 中间匹配:查找包含特定子串的所有记录。

    SELECT * FROM products WHERE description LIKE '%shirt%';

    这条语句会返回描述中包含单词 "shirt" 的所有产品。

注意事项:
  • 使用 % 可能导致全表扫描,尤其是在没有适当索引的情况下,这可能会影响性能。
  • 如果查询条件非常宽松(如 LIKE '%'),将返回所有记录,相当于 SELECT * FROM table
高级用法:
  • 组合通配符:可以结合多个通配符来构建更复杂的模式。例如,LIKE 'A%B%' 匹配以 "A" 开头并包含 "B" 的字符串。
  • 转义字符:当需要匹配实际的百分号时,使用转义字符。例如,LIKE '100\%' ESCAPE '\' 将匹配包含 "100%" 的字符串。

2. 下划线 _

内部工作原理:
  • 每个下划线代表一个任意字符的位置,因此 LIKE 'J_n' 会查找以 "J" 开头,后面跟任意单个字符,然后是 "n" 的记录。
  • 下划线的行为类似于正则表达式中的点号 .,但它仅匹配单个字符。
性能影响与优化:
  • 索引利用:虽然 _ 只匹配单个字符,但在某些情况下仍然可以利用索引。例如,LIKE '_a%' 可以部分利用索引。
  • 限制使用:尽量减少下划线的数量,因为过多的下划线可能导致索引失效。
示例与应用场景:
  • 精确位置匹配:查找特定位置上的任意字符。

    SELECT * FROM users WHERE username LIKE 'J_n';

    这条语句会返回所有以 "J" 开头,中间有一个任意字符,然后是 "n" 的用户名(如 "John", "Jane")。

  • 多字符匹配:结合多个下划线来匹配固定长度的字符串。

    SELECT * FROM products WHERE code LIKE 'P___001';

    这条语句会返回所有产品代码为 "P" 开头,后面跟三个任意字符且最后四位是 "001" 的产品。

注意事项:
  • _ 仅匹配单个字符,因此它适用于需要对字符串长度进行严格控制的场景。
高级用法:
  • 固定长度匹配:通过组合多个下划线来匹配固定长度的字符串。例如,LIKE '___' 匹配恰好三个字符长的字符串。

3. 方括号 [] 和范围 -

内部工作原理:
  • 在正则表达式中,方括号用于定义字符集合或范围。例如,[abc] 匹配 'a'、'b' 或 'c' 中的一个字符;[a-z] 匹配任何小写字母。
  • MySQL使用的是POSIX正则表达式引擎,它支持多种模式匹配功能。
性能影响与优化:
  • 正则表达式的代价:正则表达式比简单的 LIKE 查询更复杂,因此性能可能较差。对于简单模式,优先考虑使用 LIKE
  • 索引兼容性:正则表达式通常不能有效利用索引,除非模式非常具体(如以锚定开始/结束)。
示例与应用场景:
  • 字符集合匹配:查找包含特定集合内字符的记录。

    SELECT * FROM users WHERE username REGEXP '[abc]';

    这条语句会返回用户名中包含 'a'、'b' 或 'c' 中任意一个字符的用户。

  • 字符范围匹配:查找包含特定范围内字符的记录。

    SELECT * FROM products WHERE code REGEXP '[0-9]{4}';

    这条语句会返回产品代码中包含四个连续数字的产品。

注意事项:
  • 正则表达式功能强大但复杂,确保理解正则表达式的语法以避免错误。
  • 正则表达式的性能可能不如简单的 LIKE 操作,特别是在处理大量数据时。
高级用法:
  • 排除字符集:使用 [^...] 来排除特定字符。例如,REGEXP '[^aeiou]' 匹配不包含元音字母的字符串。
  • 复合条件:结合其他正则表达式元素(如 |*+ 等)来构建复杂的模式。

4. 脱字符 ^ 和美元符号 $

内部工作原理:
  • 这些符号用于表示字符串的开始 (^) 和结束 ($)。例如,^admin 匹配以 "admin" 开头的字符串;example\.com$ 匹配以 "example.com" 结尾的字符串。
  • 锚定可以显著提高查询的准确性,因为它限定了匹配的位置。
性能影响与优化:
  • 索引利用:当模式以 ^ 开始时,MySQL可以利用索引加速查询。同样,以 $ 结束的模式也可以部分利用索引。
  • 提高效率:通过明确指定匹配位置,减少了不必要的遍历,提高了查询效率。
示例与应用场景:
  • 字符串开始匹配:查找以特定字符串开头的记录。

    SELECT * FROM users WHERE username REGEXP '^admin';

    这条语句会返回所有用户名以 "admin" 开头的用户。

  • 字符串结束匹配:查找以特定字符串结尾的记录。

    SELECT * FROM emails WHERE address REGEXP '@example\.com$';

    这条语句会返回所有电子邮件地址以 @example.com 结尾的记录。

注意事项:
  • 确保正确转义特殊字符(如点号 .),以免误将其解释为正则表达式中的通配符。
高级用法:
  • 多行模式:在某些环境中,可以通过设置选项来使 ^ 和 $ 匹配每一行的开始和结束,而不仅仅是整个字符串。
  • 结合其他元素:与正则表达式的其他元素结合使用,创建更为精确的匹配规则。

5. 点号 .

内部工作原理:
  • 点号在正则表达式中表示任意单个字符。例如,.. 匹配两个任意字符。
  • 它的行为类似于下划线 _,但只能用于正则表达式中。
性能影响与优化:
  • 性能较低:由于其通用性,点号可能会导致较慢的查询性能,特别是当没有适当索引时。
  • 谨慎使用:尽量避免过度使用点号,尤其是在不需要的地方。
示例与应用场景:
  • 任意字符匹配:查找包含任意单个字符的位置。
    SELECT * FROM codes WHERE code REGEXP '..';
    这条语句会返回所有恰好两个字符长的代码。
注意事项:
  • 点号只能匹配单个字符,不能匹配换行符(除非启用了相应的正则表达式选项)。
高级用法:
  • 非贪婪匹配:在支持的环境中,可以使用修饰符(如 ?)来实现非贪婪匹配。例如,.*? 表示尽可能少地匹配任意字符。

6. 星号 * 和加号 +

内部工作原理:
  • * 表示前面的字符出现零次或多次;+ 表示一次或多次。
  • 这些量词使得正则表达式能够灵活地处理重复字符的情况。
性能影响与优化:
  • 贪婪匹配:默认情况下,* 和 + 是贪婪的,这意味着它们会尽可能多地匹配字符。这可能会导致性能问题。
  • 非贪婪匹配:在支持的环境中,可以通过添加 ? 修饰符来实现非贪婪匹配,从而优化性能。
示例与应用场景:
  • 零次或多次匹配:查找包含零个或多个连续字符的记录。

    SELECT * FROM texts WHERE content REGEXP 'a*';

    这条语句会返回包含零个或多个连续 'a' 字符的内容。

  • 一次或多次匹配:查找至少包含一个特定字符的记录。

    SELECT * FROM texts WHERE content REGEXP 'a+';

    这条语句会返回包含至少一个 'a' 字符的内容。

注意事项:
  • * 和 + 是贪婪的,它们会尽可能多地匹配字符。如果需要非贪婪匹配,可以在某些环境中使用 ? 修饰符(如 a+?)。
高级用法:
  • 限定次数:使用 {n}{n,} 或 {n,m} 来精确控制匹配的次数。例如,a{3} 匹配连续三个 'a' 字符。

7. 问号 ?

内部工作原理:
  • 表示前面的字符是可选的,即它可以出现0次或1次。
  • 这种灵活性允许构建更宽松的匹配规则。
性能影响与优化:
  • 非贪婪特性? 是非贪婪的,它会尝试最小化匹配,这对于某些场景是有利的。
  • 简化逻辑:使用 ? 可以简化某些条件逻辑,特别是在处理可选字符时。
示例与应用场景:
  • 可选字符匹配:查找包含可选字符的记录。
    SELECT * FROM words WHERE word REGEXP 'colou?r';
    这条语句会返回包含 "color" 或 "colour" 的单词。
注意事项:
  • ? 是非贪婪的,它会尝试最小化匹配。
高级用法:
  • 结合其他元素:与其他正则表达式元素结合使用,创建更复杂的模式。

8. 竖线 |

内部工作原理:
  • 作为逻辑“或”运算符,| 允许匹配多个模式之一。
  • 例如,red|blue 匹配包含 "red" 或 "blue" 的字符串。
性能影响与优化:
  • 复杂度增加:随着竖线两边模式数量的增加,查询复杂度也会增加,可能会影响性能。
  • 优化选择:尽量减少竖线的使用,或者将其放在最有可能匹配的部分。
示例与应用场景:
  • 多模式匹配:查找符合多个模式之一的记录。
    SELECT * FROM colors WHERE name REGEXP 'red|blue';
    这条语句会返回颜色名为 "red" 或 "blue" 的记录。
注意事项:
  • 竖线两边的模式是独立的,不会相互影响。
高级用法:
  • 嵌套条件:可以将竖线与其他正则表达式元素嵌套使用,构建更为复杂的条件逻辑。

特殊情况:转义通配符

内部工作原理:
  • 使用转义字符(默认为反斜杠 \)告诉MySQL将通配符视为普通字符。
  • 例如,LIKE 'A\%' ESCAPE '\' 将匹配包含 "A%" 的字符串,而不是以 "A" 开头的任意字符串。
性能影响与优化:
  • 转义字符的影响:转义字符本身不会显著影响性能,但过多的转义可能会降低可读性和维护性。
  • ESCAPE 关键字:通过 ESCAPE 关键字可以灵活指定不同的转义字符,适应不同的需求。
示例与应用场景:
  • 转义 %

    SELECT * FROM users WHERE username LIKE 'A\%' ESCAPE '\';

    这条语句将会查找所有以 "A%" 开头的用户名,其中的百分号被视为普通字符而非通配符。

  • 转义 _

    SELECT * FROM codes WHERE code LIKE '_\_123' ESCAPE '_';

    这条语句将会查找所有以下划线开头,后面跟 _123 的代码,注意这里使用了双下划线进行转义。

注意事项:
  • 当转义字符本身出现在查询中时,你需要再次转义它(例如,使用 \\ 来表示单个反斜杠)。
  • 使用 ESCAPE 关键字可以灵活指定不同的转义字符,从而适应不同的需求。
高级用法:
  • 多重转义:当转义字符本身出现在查询中时,需要再次转义。例如,使用 \\ 来表示单个反斜杠。
  • 特殊字符处理:确保正确处理特殊字符(如空格、标点符号等),以避免意外的匹配结果。

最佳实践与注意事项:

  • 索引策略:对于频繁使用的模式匹配查询,考虑创建适当的索引(如前缀索引)。这可以极大地提高查询效率。
  • 避免不必要的通配符:尽量减少通配符的使用,特别是避免在模式的开头使用通配符,因为这通常会导致全表扫描。
  • 选择合适的工具:当涉及到复杂的模式匹配时,评估是否正则表达式是最佳选择,还是可以通过其他方式(如全文索引)实现更好的性能。
  • 测试与分析:在生产环境中实施之前,务必对查询进行充分的测试和性能分析,确保其符合预期。

相关文章:

MySQL中的通配符

1. 百分号 % 内部工作原理: 代表零个、一个或多个任意字符。LIKE A%:MySQL会从索引(如果存在)中查找所有以 "A" 开头的记录。如果没有索引,则需要扫描整个表。MySQL解析器将模式转换为可执行的形式&#x…...

【ETCD】【源码阅读】stepWithWaitOption方法解析

在分布式系统中,ETCD 作为一个强一致性、高可用的 key-value 存储系统,广泛应用于服务发现、配置管理等场景。ETCD 在内部采用了 Raft 协议来保证集群的一致性,而日志预提案(log proposal)是 Raft 协议中至关重要的一部…...

F12抓包01:启动、面板功能介绍、语言设置、前端样式调试

浏览器检查工具通常用来作为浏览器web服务测试过程中,辅助测试、排查问题、定位缺陷的工具。 本文以mac系统下,当前比较常用的Chrome浏览器为例,讲解“检查”工具的常用功能操作方法。 一、打开方式 **1、****鼠标操作:**浏览器…...

用前端html如何实现2024烟花效果

用HTML、CSS和JavaScript编写的网页&#xff0c;主要用于展示“2024新年快乐&#xff01;”的文字形式烟花效果。下面是对代码主要部分的分析&#xff1a; HTML结构 包含三个<canvas>元素&#xff0c;用于绘制动画。引入百度统计的脚本。 CSS样式 设置body的背景为黑…...

Maven学习(传统Jar包管理、Maven依赖管理(导入坐标)、快速下载指定jar包)

目录 一、传统Jar包管理。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;传统的Jar包导入方法。 1、手动寻找Jar包。并放置到指定目录下。 2、使用IDEA的库管理功能。 3、配置环境变量。 &#xff08;3&#xff09;传统的Jar包管理缺点。 二、Maven。 &#…...

mac电脑吧iso文件制作成u盘启动

1 查看u盘的具体路径 diskutil list 根据容量确认路径 /dev/disk2 2、卸载u盘 diskutil unmountDisk /dev/disk2 3、把iso文件写入u盘 sudo dd if/Users/dengjinshan/Downloads/Win11_24H2_Chinese_Simplified_x64.iso of/dev/disk2 bs1m 4、弹出u盘 diskutil eject /dev/dis…...

MySQL数据库的数据类型

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 MySQL数据库的数据类型 收录于专栏[MySQL] 本专栏旨在分享学习MySQL的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 数据类型分类 ​…...

【golang】匿名内部协程,值传递与参数传递

代码例子 下面代码的区别是直接调用循环变量&#xff0c;这里使用的就是这个变量的引用&#xff0c;而不是将参数的副本传递给协程执行 for task : range taskChan {wg.Add(1)go func() {defer wg.Done()task.Do() // 使用外部循环变量}() }func DistributeTasks(taskChan &…...

ByteByteGo-Top 9 HTTP Request Methods 9种HTTP请求方法

更详细准确的描述直接参考 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/CONNECT ​​​​​本片文章出自 EP85: Top 9 HTTP Request Methods - ByteByteGo Newsletter http request methods 1&#xff0c;GET 从服务器获取资源。 具有幂等性&#xff08;idempo…...

vue3实际案例分析:展示Vue拖拽功能的实现和效果

在现代前端开发中&#xff0c;交互式的用户界面是提升用户体验的关键因素之一。Vue.js&#xff0c;作为一个渐进式JavaScript框架&#xff0c;提供了灵活的组件系统和响应式数据绑定&#xff0c;使得实现复杂的用户交互变得简单。拖拽功能是其中一个常见的交互模式&#xff0c;…...

EasyExcel使用管道流连接InputStream和OutputStream

前言 Java中的InputSteam 是程序从其中读取数据&#xff0c; OutputSteam是程序可以往里面写入数据。 如果我们有在项目中读取数据库的记录&#xff0c; 在转存成Excel文件, 再把文件转存到OSS中。 生成Excel使用的是阿里的EasyExcel 。 他支持Output的方式写出文件内容。 而…...

源码分析之Openlayers中的ZoomToExtent控件

概述 在 Openlayers 中&#xff0c;ZoomToExtent控件可能用的不是很多&#xff0c;它主要用于将地图视图缩放到指定范围&#xff0c;应用场景就是重置地图、恢复初始状态。但是一般情况下&#xff0c;重置地图可能还会有其它操作&#xff0c;比如清除地图上绘制的点线面或者显…...

Acwing 算法基础课 数学知识 线性筛

线性筛素数 也叫欧拉筛。 int pr[maxn]; bool flg[maxn]; int main() {for (int i 2; i < maxn; i) {if (!flg[i]) pr[pr[0]] i;for (int j 1; i * pr[j] < n && j < pr[0]; j) {flg[i * pr[j]] 1;if (i % pr[j] 0) break; // 重点}} }这样筛的话&…...

K8s驱逐阈值调整

要在 Kubernetes 中调整 kubelet 驱逐阈值&#xff0c;特别是针对 imagefs 和 nodefs 的大小阈值&#xff0c;你可以通过修改 kubelet 的启动参数来实现。这些参数定义了在触发 Pod 驱逐之前&#xff0c;节点上的资源使用情况必须满足的硬性条件。 根据你提供的文件内容&#…...

【密码学】BUUCTF Crypto 1 - 12 题 WriteUp

今天&#xff0c;我在 BUUCTF 网站的 crypto section 开启了一场充满挑战的密码学之旅。 这次我一口气完成了 12 个板块的任务&#xff0c;虽然耗时较长&#xff0c;但每一次解密成功的瞬间都让我无比满足&#xff0c;那种沉浸在密码世界里的感觉真的很棒。 接下来&#xff0…...

【文献阅读】使用深度语音后验改进独立于说话者的构音障碍可懂度分类

原文名称: IMPROVED SPEAKER INDEPENDENT DYSARTHRIA INTELLIGIBILITY CLASSIFICATION USING DEEPSPEECH POSTERIORS 本文探讨了利用DeepSpeech后验概率改进说话人无关的构音障碍可理解性分类方法。作者提出了一个基于DeepSpeech(一种端到端的语音转文本引擎)输出的新特征集…...

Image Stitching using OpenCV

文章目录 简介图像拼接管道特征检测和提取特征检测特征提取 特征匹配强力匹配FLANN&#xff08;近似最近邻快速库&#xff09;匹配 单应性估计扭曲和混合结论 使用opencv进行图像拼接 原为url: https://medium.com/paulsonpremsingh7/image-stitching-using-opencv-a-step-by-s…...

如何将CSDN的文章保存为PDF?

目录 1、打开CSDN文章2、按F12或者鼠标右键选择检查并进入控制台3、在控制台输入以下代码4、然后回车&#xff08;Enter&#xff09;如果纵向显示不全就横向 1、打开CSDN文章 2、按F12或者鼠标右键选择检查并进入控制台 3、在控制台输入以下代码 (function(){ $("#side&q…...

设计模式之工厂模式:从汽车工厂到代码工厂

~犬&#x1f4f0;余~ “我欲贱而贵&#xff0c;愚而智&#xff0c;贫而富&#xff0c;可乎&#xff1f; 曰&#xff1a;其唯学乎” 工厂模式概述 想象一下你走进一家4S店准备买车。作为顾客&#xff0c;你不需要知道汽车是如何被制造出来的&#xff0c;你只需要告诉销售顾问&a…...

在 Ubuntu 20.04 上离线安装和配置 Redis

下面是从零开始配置 Redis 的完整步骤&#xff0c;包括从安装 Redis 到离线安装 Redis 包的步骤。本文将覆盖如何从下载 Redis 安装包、手动安装 Redis、创建所需目录、配置 Redis、以及如何配置 Redis 为系统服务&#xff0c;确保服务可以在启动时自动运行。 步骤 1: 准备环境…...

Redis的哨兵机制

目录 1. 文章前言2. 基本概念2.1 主从复制的问题2.2 人工恢复主节点故障2.3 哨兵机制自动恢复主节点故障 3. 安装部署哨兵&#xff08;基于docker&#xff09;3.1 安装docker3.2 编排redis主从节点3.3 编排redis-sentinel节点 4. 重新选举5. 选举原理6. 总结 1. 文章前言 &…...

服务器数据恢复—热备盘上线过程中硬盘离线导致raid5阵列崩溃的数据恢复案例

服务器数据恢复环境&#xff1a; 两组分别由4块SAS接口硬盘组建的raid5阵列&#xff0c;两组raid5阵列划分LUN并由LVM管理&#xff0c;格式化为EXT3文件系统。 服务器故障&#xff1a; RAID5阵列中一块硬盘未知原因离线&#xff0c;热备盘自动激活上线替换离线硬盘。在热备盘上…...

Android12 设置无home属性的apk为launcher

目标apk的包类名 QSSI.12/device/qcom/qssi/system.prop// add start target_app_package_name=com.mangechargespot.app target_app_class_name=com.mangechargespot.app.ui.activity.SplashActivity // add end...

STM32F407+LAN8720A +LWIP +FreeRTOS ping通

使用STM32CUBEIDE自带的 LWIP和FreeROTS 版本说明STM32CUBEIDE 操作如下1. 配置RCC/SYS2. 配置ETH/USART3. 配置EHT_RESET/LED4. 配置FreeRTOS5. 配置LWIP6. 配置时钟7. 生成单独的源文件和头文件,并生成代码8. printf重定义9. ethernetif.c添加lan8720a复位10. MY_LWIP_Init …...

构建虚幻引擎中的HUD与UI

在游戏开发中,用户界面(UI)和头部显示(HUD)是玩家体验的重要组成部分。它们提供了关键信息,并增强了游戏的互动性。虚幻引擎(Unreal Engine, UE)以其强大的可视化脚本系统Blueprint和C++ API支持,为开发者提供了一个灵活且功能丰富的环境来创建复杂的UI和HUD元素。 本…...

EXCEL数据清洗的几个功能总结备忘

目录 0 参考教材 1 用EXCEL进行数据清洗的几个功能 2 删除重复值&#xff1a; 3 找到缺失值等 4 大小写转换 5 类型转化 6 识别空格 0 参考教材 精通EXCEL数据统计与分析&#xff0c;中国&#xff0c;李宗璋用EXCEL学统计学&#xff0c;日EXCEL统计分析与决策&#x…...

【CSS in Depth 2 精译_076】12.4 @font-face 的工作原理

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 12 章 CSS 排版与间距】 ✔️ 12.1 间距设置 12.1.1 使用 em 还是 px12.1.2 对行高的深入思考12.1.3 行内元素的间距设置 12.2 Web 字体12.3 谷歌字体12.4 font-fac…...

深入源码解析:Spring Boot 如何加载 Servlet 、Filter 与 Listener

我们知道&#xff0c;Spring Boot 是在 Spring MVC 的基础上进行了封装&#xff0c;以简化开发者的工作量。尽管如此&#xff0c;Spring Boot 的底层架构依然离不开 Spring MVC 的核心组件&#xff0c;如 Servlet、Filter、Listener&#xff0c;以及RequestMappingHandlerMappi…...

Vue 让视图区域滑到指定位置、回到顶部

滑倒指定位置&#xff1a;获取指定的dom&#xff0c;然后用scrollIntoView使dom出现在视图区域 回到顶部&#xff1a;操作父级dom的scrollTop 0&#xff0c;让该父级下的列表回到顶部 代码如下 <template><div class"testDemo"><div><el-bu…...

C# 属性(Property)

C# 属性(Property) C# 中的属性(Property)是一种用于访问和设置类或结构成员的值的特殊类型的方法。属性允许开发者以字段的形式访问方法,提供了更为安全和灵活的数据封装。在本文中,我们将深入探讨 C# 属性的概念、用途、以及如何有效地使用它们。 属性的定义 属性由…...

Ubuntu20.04调整swap分区大小笔记

Ubuntu20.04调整swap分区大小笔记 参考&#xff1a;https://blog.csdn.net/sunyuhua_keyboard/article/details/142485764 第一步 禁用swap $ cat /etc/fstab # /etc/fstab: static file system information. # # Use blkid to print the universally unique identifier fo…...

【 JAVA中常见的集合操作】

JAVA中常见的集合操作 Java 提供了丰富的集合框架&#xff08;Java Collections Framework&#xff09;&#xff0c;包括多种集合接口和实现类。集合操作可以分为基本操作和高级操作。下面介绍一些常见的集合操作&#xff0c;并给出相应的代码示例。 基本集合操作 创建集合 …...

Kudu 源码编译-aarch架构 1.17.1版本

跟着官方文档编译 第一个问题&#xff1a;在make阶段时会报的问题&#xff1a; kudu/src/kudu/util/block_bloom_filter.cc:210:3: error: ‘vst1q_u32_x2’ was not declared in this scope kudu/src/kudu/util/block_bloom_filter.cc:436:5: error: ‘vst1q_u8_x2’ was no…...

JavaEE多线程案例之阻塞队列

上文我们了解了多线程案例中的单例模式&#xff0c;此文我们来探讨多线程案例之阻塞队列吧 1. 阻塞队列是什么&#xff1f; 阻塞队列是⼀种特殊的队列.也遵守"先进先出"的原则. 阻塞队列是⼀种线程安全的数据结构,并且具有以下特性: 当队列满的时候,继续⼊队列就会…...

Java Web 开发学习中:过滤器与 Ajax 异步请求

一、过滤器 Filter&#xff1a; 过滤器的概念与用途 在一个庞大的 Web 应用中&#xff0c;有许多资源需要受到保护或进行特定的预处理。过滤器就像是一位智能的守卫&#xff0c;站在资源的入口处&#xff0c;根据预先设定的规则&#xff0c;决定哪些请求可以顺利访问资源&…...

git SSL certificate problem: unable to get local issuer certificate

Git 客户端将会验证服务器端提供的SSL证书是否由受信任的证书颁发机构&#xff08;Certification Authority&#xff0c;CA&#xff09;签发。如果Git客户端无法找到或验证本地签发者证书&#xff0c;就会出现 unable to get local issuer certificate 或类似的错误。 该问题一…...

Vue.js 响应接口

Vue.js 响应接口 Vue.js,作为一个流行的前端JavaScript框架,以其响应式数据绑定和组件化开发而闻名。响应式系统是Vue.js的核心特性之一,它允许开发者创建高度动态和交互式的用户界面。本文将深入探讨Vue.js的响应接口,包括其工作原理、使用方法和最佳实践。 响应式原理 …...

vue2-代理打包问题;CORS针对AJAX 请求,而不适用于资源请求

打包后请求被转发出现问题&#xff08;如返回 405 Method Not Allowed&#xff09;&#xff0c;通常是由以下原因导致的&#xff1a; 1. 代理配置未生效 原因分析 在开发环境中&#xff0c;Vue CLI 的 devServer.proxy 仅在本地开发服务器&#xff08;npm run serve&#xff…...

websocket 服务 pinia 全局配置

websocket 方法类 // stores/webSocketStore.ts import { defineStore } from "pinia";interface WebSocketStoreState {ws: WebSocket | null; // WebSocket 实例callbacks: ((message: string) > void)[]; // 消息回调函数列表connected: boolean; // 连接状态…...

YOLO系列正传(二)YOLOv3论文精解(上)——从FPN到darknet-53

系列文章 YOLO系列基础 YOLO系列基础合集——小白也看得懂的论文精解-CSDN博客 YOLO系列正传 YOLO系列正传系列&#xff08;一&#xff09;类别损失与MSE损失函数、交叉熵损失函数-CSDN博客 背景 随着YOLOv11版本的发布&#xff0c;YOLO算法在视觉检测领域独领风骚&#x…...

可视化建模与UML《部署图实验报告》

一、实验目的&#xff1a; 1、熟悉部署图的基本功能和使用方法。 2、掌握使用建模工具软件绘制部署图的方法 二、实验环境&#xff1a; window11 EA15 三、实验内容&#xff1a; 根据以下的描述&#xff0c;绘制部署图。 网上选课系统在服务器端使用了两台主机&#xff0c;一…...

详解RabbitMQ在Ubuntu上的安装

​​​​​​​ 目录 Ubuntu 环境安装 安装Erlang 查看Erlang版本 退出命令 ​编辑安装RabbitMQ 确认安装结果 安装RabbitMQ管理界面 启动服务 查看服务状态 通过IP:port访问 添加管理员用户 给用户添加权限 再次访问 Ubuntu 环境安装 安装Erlang RabbitMq需要…...

SQL 快速参考

SQL 快速参考 引言 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系数据库管理系统&#xff08;RDBMS&#xff09;的标准编程语言。它被广泛用于数据查询、数据更新、数据库维护以及访问控制。本快速参考指南旨在提供SQL的基本概念和常用命令的概览…...

数据结构--树和二叉树

树和二叉树的定义 树的定义 树是一种非线性的数据结构&#xff0c;它模拟了具有层次关系的数据的集合。在树结构中&#xff0c;存在以下基本概念&#xff1a; 节点&#xff08;Node&#xff09;&#xff1a;树的每个元素被称为节点。根节点&#xff08;Root Node&#xff09…...

R语言的数据结构-向量

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 在R语言中&#xff0c;数据结构是非常关键的部分&#xff0c;它提…...

MetaGPT源码 (ContextMixin 类)

目录 理解 ContextMixin什么是 ContextMixin&#xff1f;主要组件实现细节 测试 ContextMixin示例&#xff1a;ModelX1. 配置优先级2. 多继承3. 多继承重写4. 配置优先级 在本文中&#xff0c;我们将探索 ContextMixin 类&#xff0c;它在多重继承场景中的集成及其在 Python 配…...

linux中top命令详解

top 命令是 Linux 系统中常用的实时系统监控工具&#xff0c;它可以显示系统的实时进程和资源占用情况。以下是 top 命令的一些基本用法和参数详解&#xff1a; 基本用法 • top&#xff1a;运行 top 命令&#xff0c;显示系统实时监控信息。 • top -h&#xff1a;显示帮助信…...

Scrapy与MongoDB

Scrapy可以在非常短的时间里获取大量的数据。这些数据无论是直接保存为纯文本文件还是CSV文件&#xff0c;都是不可取的。爬取一个小时就可以让这些文件大到无法打开。这个时候&#xff0c;就需要使用数据库来保存数据了。 MongoDB由于其出色的性能&#xff0c;已经成为爬虫的首…...

【Linux-ubuntu通过USB传输程序点亮LED灯】

Linux-ubuntu通过USB传输程序点亮LED灯 一,初始化GPIO配置1.使能时钟2.其他寄存器配置 二&#xff0c;程序编译三&#xff0c;USB传输程序 一,初始化GPIO配置 1.使能时钟 使能就是一个控制信号&#xff0c;用于决定时钟信号是否能够有效的传递或者被使用&#xff0c;就像一个…...

onlyoffice 容器配置修改后制作镜像导出以及上传到 dockerhub

1.将容器制作成新的镜像 docker commit -p -a "xxx" -m "zh-cn-20-100" onlyoffice ooffice:7.1.1.23docker commit: 这是 Docker 中用于创建新镜像的命令。 -p: 这个选项用于在提交之前暂停容器的运行。这可以确保数据的完整性&#xff0c;因为容器在提交…...