全局优化

mysql server参数

1. max_connections(最大连接数)

  • 含义:MySQL 服务允许的最大并发连接数(包括正在使用和空闲的连接)。超过此限制时,新连接会被拒绝(报错 Too many connections)。
  • 默认值:151(MySQL 8.0 及以下);MySQL 8.0.23+ 调整为 151 + (max_connections / 50)(但实际仍以配置为准)。
  • 优化建议
    • 取值需结合服务器内存与 CPU 资源(每个连接默认占用约 200KB 内存)。
    • 公式参考:max_connections = 可用内存(GB)* 1000 / 0.2(单连接内存估算)(例如 16GB 内存服务器,建议设为 800-1000)。
    • 上限不超过操作系统 ulimit -n(文件描述符)的 80%(避免与其他进程冲突)。

2. max_user_connections(单用户最大连接数)

  • 含义:限制单个 MySQL 用户(如 root@localhost)能同时建立的连接数(防止单个用户占满连接池)。
  • 默认值:0(表示不限制)。
  • 优化建议
    • 设为 max_connections * 20%~30%(例如 max_connections=1000,则 max_user_connections=200~300)。
    • 业务中若存在多应用共享同一账号,需适当调大(如 500);若账号隔离严格,可设为更小值(如 100)。

3. back_log(半连接队列长度)

  • 含义:MySQL 接受新连接时,未完成三次握手的半连接队列的最大长度(即等待被 MySQL 处理的连接数)。若队列满,新连接会被操作系统拒绝(报 connection refused)。
  • 默认值:80(MySQL 5.7 及以下);MySQL 8.0+ 调整为 min(511, max_connections)
  • 优化建议
    • 高并发场景(如 QPS > 1000)建议调大至 max_connections * 50%(例如 max_connections=1000,则 back_log=500)。
    • 上限不超过 max_connections(避免无效队列)。

4. wait_timeout(非交互连接超时)

  • 含义非交互式连接(如通过脚本/程序建立的连接)在空闲状态下的超时时间(秒),超时后连接会被自动关闭。
  • 默认值:28800(8 小时)。
  • 优化建议
    • 过长会导致空闲连接堆积,浪费资源;过短可能增加连接重建开销。
    • 业务场景若短连接多(如 Web 应用),建议设为 360014400(14 小时);若长连接多(如批量任务),可适当延长(如 28800)。

5. interactive_timeout(交互连接超时)

  • 含义交互式连接(如通过 mysql -u root -p 命令行工具建立的连接)在空闲状态下的超时时间(秒)。
  • 默认值:与 wait_timeout 相同(28800)。
  • 优化建议
    • 通常与 wait_timeout 保持一致(避免连接行为不一致)。
    • 若需区分交互式与非交互式场景(如 DBA 操作),可单独调大(如 43200)。

6. sort_buffer_size(排序缓冲区大小)

  • 含义:MySQL 执行 ORDER BYGROUP BY 等排序操作时,单个线程使用的内存缓冲区大小(若缓冲区不足,会使用磁盘临时表排序)。
  • 默认值:256KB(MySQL 5.7 及以下);MySQL 8.0+ 调整为 32KB(更保守)。
  • 优化建议
    • 过小会导致频繁磁盘排序(慢),过大浪费内存(每个排序线程独立分配)。
    • 通用场景:1~4MB;大表排序(如 100W+ 行)可设为 8MB(不超过 16MB)。

7. join_buffer_size(JOIN 缓冲区大小)

  • 含义:MySQL 执行 JOIN 操作时,单个线程用于存储未索引表数据的内存缓冲区大小(若缓冲区不足,会分块读取表数据)。
  • 默认值:256KB(MySQL 5.7 及以下);MySQL 8.0+ 调整为 256KB(未变)。
  • 优化建议
    • 仅对 JOIN 中未使用索引的表有效(若有索引,此参数不生效)。
    • 小表 JOIN(行数 < 1W):12MB;大表 JOIN(行数 10W100W):4~8MB(不超过 16MB)。

总结:优化原则

  • 连接类参数(前 5 个)需平衡并发能力与资源消耗,避免连接数过高导致内存溢出或 CPU 上下文切换开销过大。
  • 内存类参数(后 2 个)需结合具体查询场景,优先通过索引优化减少对缓冲区的依赖(如 ORDER BY 加索引、JOIN 字段加索引),再调整缓冲区大小。
  • 验证方法:通过 SHOW GLOBAL STATUS 查看 Threads_connected(当前连接数)、Sort_merge_passes(磁盘排序次数)、Created_tmp_tables(临时表数量)等指标,动态调整参数。

innodb参数

以下是 InnoDB 核心参数的含义、作用及推荐配置(结合 OLTP 与 OLAP 场景差异,实际需根据业务负载调整):

1. innodb_thread_concurrency(线程并发数限制)

  • 含义:控制 InnoDB 存储引擎同时处理的线程数上限(包括用户查询线程、后台 IO 线程等)。超过此限制时,新线程会进入等待队列,避免 CPU 因线程过多导致上下文切换开销激增。
  • 默认值:0(表示不限制,由 InnoDB 自动调整)。
  • 作用
    • 防止高并发场景下线程数超过 CPU 核心数,导致资源争用(如锁竞争、缓存失效)。
    • 优化 CPU 利用率,避免“线程饥饿”(部分线程因资源不足无法执行)。
  • 推荐值
    • 通用场景:设为 CPU 核心数 × 2(例如 8 核 CPU 设为 16)。
    • OLTP 高并发:若 CPU 利用率长期 >80%,可适当调小(如 CPU 核心数 × 1.5);若 CPU 空闲,可适当调大(不超过 CPU 核心数 × 3)。
    • OLAP 大查询:因单查询占用资源多,建议设为 CPU 核心数 × 1(避免多查询抢占资源)。

2. innodb_buffer_pool_size(缓冲池大小)

  • 含义:InnoDB 用于缓存数据页、索引页、锁信息的内存区域大小。缓冲池是 InnoDB 性能的核心,直接决定了“内存中读取数据”的比例(减少磁盘 IO)。
  • 默认值:MySQL 5.7 及以下默认 128MB;MySQL 8.0+ 默认动态调整(但建议手动配置)。
  • 作用
    • 提升读性能:命中缓冲池的查询无需访问磁盘。
    • 优化写性能:修改操作先写入缓冲池(脏页),再异步刷新到磁盘(通过 innodb_flush_method 控制)。
  • 推荐值
    • 物理内存分配:建议分配 服务器总内存的 50%~70%(需预留 20%~30% 给操作系统、其他进程及 MySQL 其他组件)。
    • 示例
      • 16GB 内存服务器:设为 8~12GB(SET GLOBAL innodb_buffer_pool_size=10737418240 表示 10GB)。
      • 64GB 内存服务器:设为 32~48GB。
    • 注意:缓冲池过大可能导致系统内存不足(如 OOM 杀进程),需结合 free -h 监控剩余内存。

3. innodb_lock_wait_timeout(锁等待超时时间)

  • 含义:事务因等待行锁(如 SELECT ... FOR UPDATE 或 UPDATE 冲突)而阻塞的最大等待时间(单位:秒)。超时后事务会自动回滚并报错(Lock wait timeout exceeded)。
  • 默认值:50 秒。
  • 作用
    • 避免长事务因锁等待导致阻塞链过长(如 A 锁行 → B 等待 A → C 等待 B,最终拖慢整个系统)。
    • 保护业务连续性:快速终止无法继续的事务,避免资源长期被占用。
  • 推荐值
    • OLTP 在线交易(如电商下单):设为 5~10 秒(业务容忍短时间重试)。
    • OLAP 批量任务(如数据统计):设为 60~120 秒(允许较长时间处理大表)。
    • 强一致性场景(如金融转账):可适当调小(3~5 秒),强制暴露锁冲突问题(避免隐藏的慢查询)。

4. innodb_flush_log_at_trx_commit(日志刷盘策略)

  • 含义:控制事务提交时,InnoDB 如何将 redo log 从内存写入磁盘(直接影响事务的持久性和性能)。
  • 可选值
    • 0:每秒将 redo log 缓冲区写入磁盘并刷新(不保证事务提交时刷盘)。
    • 1(默认):事务提交时立即将 redo log 写入磁盘并刷新(强持久化)。
    • 2:事务提交时将 redo log 写入磁盘(但不立即刷新,由操作系统异步刷新)。
  • 作用
    • 持久性1 是最安全的策略(崩溃不丢数据);0 和 2 可能丢失 1 秒内的事务。
    • 性能0 和 2 减少磁盘 IO 次数(提升写性能),但牺牲部分持久性。
  • 推荐值
    • 金融/支付等高一致性场景:必须用 1(确保事务提交后数据不丢失)。
    • 日志/监控等允许少量数据丢失的场景:用 2(写性能提升 20%~50%,但需接受机器宕机可能丢失 1 秒数据)。
    • 测试/开发环境:可用 0(进一步提升性能,适合非关键数据)。

总结:配置原则

  • innodb_buffer_pool_size 是性能优化的核心,优先调大(但不超过内存 70%)。
  • innodb_thread_concurrency 需结合 CPU 核心数和负载动态调整,避免线程过多导致资源竞争。
  • innodb_lock_wait_timeout 需根据业务容忍度平衡“快速回滚”与“避免重试”。
  • innodb_flush_log_at_trx_commit 需在“性能”与“持久性”间权衡(生产环境强一致性场景必选 1)。

验证方法:通过 SHOW ENGINE INNODB STATUS 查看缓冲池命中率(Buffer pool hit rate 应 >99%)、锁等待次数(Lock waits 应接近 0),结合 iostat 监控磁盘 IO 压力,动态调整参数。

binlog参数

sync_binlog 是 MySQL 中控制二进制日志(binlog)写入磁盘频率的核心参数,直接影响数据一致性、主从复制可靠性和系统性能。以下从作用、取值含义、影响及推荐配置详细说明:

1. 参数含义

sync_binlog 定义了 MySQL 在提交事务时,将 binlog 从内存缓冲区强制刷新到磁盘的频率(即调用 fsync() 系统调用的时机)。其本质是平衡数据安全性写性能的关键配置。

2. 取值与行为

sync_binlog 支持三种取值(N ≥ 0),不同值的行为差异如下:

取值

行为说明

数据安全风险

sync_binlog=0

MySQL 不主动控制 binlog 刷盘,由操作系统决定(通常每 30 秒~数分钟刷盘一次)。

若 MySQL 或服务器崩溃,可能丢失所有未刷盘的 binlog 记录(可能影响主从复制和 PITR 恢复)。

sync_binlog=1

每次事务提交时,强制将 binlog 缓冲区内容写入磁盘(fsync())。

最安全模式,崩溃时最多丢失当前未提交的事务(符合 ACID 持久性)。

sync_binlog=N(N>1)

每提交 N 次事务后,统一将 binlog 缓冲区内容写入磁盘。

若崩溃,可能丢失最近 N 次事务的 binlog 记录(风险随 N 增大而增加)。

3. 核心影响

(1)数据一致性与主从复制
  • 主从复制:从库通过主库的 binlog 同步数据。若 sync_binlog=N(N>1),主库崩溃时可能丢失部分 binlog,导致从库数据不一致。
  • PITR 恢复:基于 binlog 的时间点恢复(Point-in-Time Recovery)依赖完整的 binlog 记录。sync_binlog=0 或 N>1 可能导致恢复时丢失部分操作。
(2)性能与磁盘 IO
  • sync_binlog=1 每次提交都触发磁盘写,会增加磁盘 IO 压力(尤其在高并发写入场景),可能降低 TPS(事务吞吐量)。
  • sync_binlog=N(N>1)通过批量刷盘减少 IO 次数,提升写性能(例如 N=100 可降低 99% 的 fsync() 调用)。

4. 推荐配置

配置 sync_binlog 需结合业务对数据一致性性能的需求:

场景

推荐值

说明

金融/支付等高一致性场景

1

必须保证 binlog 完整(如转账、订单),避免主从数据不一致或恢复时数据丢失。

日志/监控等允许少量丢失场景

100~1000

业务可容忍几秒内的数据丢失(如用户行为日志),通过调大 N 减少磁盘 IO,提升写入性能。

测试/开发环境

0 或 1000

非关键数据场景,优先性能;0 由操作系统自动刷盘(需注意崩溃时可能丢失大量 binlog)。

MySQL 8.0+ 生产环境

默认 1

MySQL 8.0 起默认值调整为 1,强调数据安全;若需优化性能,可结合 innodb_flush_log_at_trx_commit=2平衡(但需评估风险)。

5. 注意事项

  • 与 innodb_flush_log_at_trx_commit 的联动

innodb_flush_log_at_trx_commit 控制 redo log 的刷盘策略(影响 InnoDB 数据持久性),而 sync_binlog 控制 binlog 的刷盘策略(影响主从复制和恢复)。两者需配合使用:

    • 若 innodb_flush_log_at_trx_commit=1(InnoDB 事务提交时 redo log 必刷盘),但 sync_binlog=0,仍可能因 binlog 丢失导致主从数据不一致。
    • 强一致性场景需同时设置 innodb_flush_log_at_trx_commit=1 和 sync_binlog=1
  • 磁盘性能依赖

sync_binlog=1 对磁盘写入延迟敏感(尤其是机械硬盘)。若磁盘 IO 性能差(如 fsync() 耗时高),建议使用 SSD 或调整 N 值(如 N=100)。

  • 监控指标

通过 SHOW GLOBAL STATUS LIKE 'Binlog_cache_disk_use' 观察 binlog 缓存是否频繁落盘(值高可能需调大 binlog_cache_size);通过 iostat 监控磁盘 %util(IO 利用率),评估 sync_binlog 对磁盘的压力。

总结

sync_binlog 是平衡数据安全与性能的关键参数:

  • 强一致性场景(如金融交易)必须设为 1
  • 性能敏感且允许少量数据丢失的场景(如日志采集)可设为 100~1000
  • 需结合 innodb_flush_log_at_trx_commit 等参数,共同保障事务的持久性和主从复制的可靠性。

Mysql 8.0新特性详解

MySQL 8.0 是一个重大版本升级,带来了许多性能优化、新功能和安全性增强。以下是其最具特色的亮点功能详解:

1. 窗口函数(Window Functions)

  • 功能:支持标准 SQL 的窗口函数(如 ROW_NUMBER()RANK()DENSE_RANK()SUM() OVER()等),用于在查询结果的分组内进行排序、计算排名或聚合统计。
  • 场景:报表统计、排名分析、滚动计算(如近 7 天销售额)等,简化复杂子查询逻辑。
  • 示例
SELECT order_date, amount,ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS rn
FROM orders;

2. CTE 公用表表达式(Common Table Expressions)

  • 功能:支持递归和非递归的 CTE(WITH 语句),定义临时结果集供后续查询复用,提升查询可读性。
  • 场景:层级数据查询(如部门架构、目录树)、递归统计(如累计值计算)。
  • 示例(递归 CTE)
WITH RECURSIVE emp_hierarchy AS (SELECT id, manager_id, name FROM employees WHERE id = 1  -- 根节点UNION ALLSELECT e.id, e.manager_id, e.name FROM employees eJOIN emp_hierarchy eh ON e.manager_id = eh.id
)
SELECT * FROM emp_hierarchy;

3. JSON 增强(JSON_TABLE 等)

  • 功能
    • JSON_TABLE:将 JSON 数据转换为关系型表结构,支持行列展开(类似 LATERAL VIEW)。
    • 新增 JSON_ARRAYAGG()JSON_OBJECTAGG() 等聚合函数,优化 JSON 数据的查询和分析。
  • 场景:半结构化数据存储(如日志、用户自定义字段),简化 JSON 与 SQL 的交互。
  • 示例
SELECT *
FROM JSON_TABLE('[{"name":"Alice","age":30},{"name":"Bob","age":25}]','$[*]' COLUMNS(name VARCHAR(50) PATH '$.name',age INT PATH '$.age')
) AS jt;

4. 隐藏索引(Invisible Indexes)

  • 功能:允许将索引标记为 INVISIBLE,使其在查询优化时被忽略,但仍可用于 DDL 操作(如 RENAMEDROP)。
  • 场景:测试新索引对性能的影响,无需删除原有索引,降低变更风险。
  • 用法
ALTER TABLE users ALTER INDEX idx_email INVISIBLE;  -- 隐藏索引
ALTER TABLE users ALTER INDEX idx_email VISIBLE;    -- 恢复可见

5. 降序索引(Descending Indexes)

  • 功能:支持直接创建降序索引(DESC),优化 ORDER BY ... DESC 查询,避免额外排序操作。
  • 对比:MySQL 5.7 及之前版本需通过升序索引实现降序排序,8.0 原生支持更高效。
  • 示例
CREATE INDEX idx_desc ON orders (price DESC, order_date DESC);

6. 默认字符集改为 utf8mb4

  • 变更:MySQL 8.0 默认为 utf8mb4 字符集(支持 emoji、复杂文字),校对规则为 utf8mb4_0900_ai_ci(更高效的排序规则)。
  • 影响:新建表自动使用 utf8mb4,避免历史版本中 utf8(仅 3 字节)导致的 emoji 存储问题。

7. 原子 DDL(Atomic DDL)

  • 功能:表结构变更(DDL)操作支持原子性,失败时自动回滚,避免因崩溃导致的表元数据损坏(如 .frm 文件残留)。
  • 实现:通过 InnoDB 事务机制保障 DDL 原子性,减少运维风险。

8. 性能优化:自增主键与锁

  • 自增主键优化:引入 ALGORITHM=INSTANT(瞬间操作),支持无锁修改自增主键值,提升在线变更效率。
  • 锁优化:减少 INSERT 语句的锁竞争(如 AUTO-INC Lock 优化),高并发插入场景性能提升显著。

9. 安全增强:默认身份验证插件

  • 变更:默认身份验证插件从 mysql_native_password 改为 caching_sha2_password,提供更强的密码加密和缓存机制。
  • 注意:需确保客户端(如 MySQL Connector/J 8.0+)支持 caching_sha2_password,否则需手动切换为旧插件。

10. 角色管理(Role-Based Access Control)

  • 功能:支持创建角色(CREATE ROLE)并分配权限,再将角色授予用户,简化权限管理(如批量授权、权限回收)。
  • 示例
CREATE ROLE 'report_role';
GRANT SELECT ON sales.* TO 'report_role';
GRANT 'report_role' TO 'user1'@'localhost';

总结:升级价值

MySQL 8.0 的核心提升体现在:

  • 开发体验:窗口函数、CTE、JSON 增强降低复杂查询开发成本;
  • 性能与稳定性:原子 DDL、索引优化、锁机制提升系统可靠性;
  • 安全性:默认加密插件、角色管理强化权限体系;
  • 兼容性:utf8mb4 默认化解决字符集历史问题。

建议根据业务场景评估升级,尤其是涉及数据分析、JSON 数据或高并发写入的场景,新特性可显著提升开发效率和系统性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/82846.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/82846.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/82846.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS Code 插件 Git History Diff

插件名 进命令行&#xff0c;进Git自己那个分支 查看分支 提交到Git的后想再把另一个也提交到那个分支&#xff0c;用这个命令

Shell脚本中的常用命令

一.设置主机名称 文件设置 文件开机时已读取所以要重新进入 命令更改&#xff08;即使生效&#xff09; 二.网络管理命令 1.查看网卡命令 设置网卡 1&#xff09;DHCP工作模式 2)静态IP 3&#xff09;修改网卡信息 三.简单处理字符 1.打印连续数字 连续打印3个数字 指定打…

C++ 中 std::wstring::c_str() 的潜在风险与安全使用指南

一、问题背景 在开发过程中&#xff0c;我们经常会遇到不同接口之间的数据传递问题。例如&#xff0c;当调用某个接口时&#xff0c;需要传入一个字符串指针作为数据接收的缓冲区&#xff0c;但外围接口使用的是 std::wstring 类型。此时&#xff0c;如果直接将 std::wstring:…

‘js@https://registry.npmmirror.com/JS/-/JS-0.1.0.tgz‘ is not in this registry

解决方法&#xff1a; 1. npm cache clean --force 2.临时切换到官方源 npm config set registry https://registry.npmjs.org/ npm install js0.1.0 npm config set registry https://registry.npmmirror.com/ # 切换回镜像源

ubuntu24 安装MongoDB-6.0.24 数据库操作步骤和配置参数说明

目录 1 下载MongoDB软件 2 操作系统信息 3 MongoDB 软件安装步骤 4 编写mongodb的配置文件 5 生成keyfile 6 使用mongo用户启动mongodb服务 7 设置开机启动(mongo用户) 8 安装MongoDB shell&#xff0c;因为MongoDB-6.0.24 已经移除mongo命令 1 下载MongoDB软件 https:…

单片机——keil5

文章目录 安装教程使用介绍案例展示 接下来进行keil5软件的相关学习使用 安装教程 参考视频链接bilibili 51单片机 大约在8分钟位置处 使用介绍 首先新建project选择对应的芯片型号&#xff08;例如&#xff1a;STC89C52 —— 由于STC系列是国产&#xff0c;keil5软件不支持…

计算机网络相关发展以及常见性能指标

目录 一、因特网概述 1.1 基本概念 1.2 因特网发展的三个阶段 1.3 英特网服务提供者ISP 1.4 英特网的标准化工作 1.5 因特网的组成 1.6 简单总结 二、3种交换方式 2.1 电路交换&#xff08;Circuit Switching&#xff09; 2.2 分组交换&#xff08;Packet Switching&…

Java 面试实录:从Spring到微服务的技术探讨

在一个明亮的会议室里&#xff0c;严肃的面试官与搞笑的程序员谢飞机正进行一场关于Java技术栈的面试。场景设定在一家知名互联网大厂&#xff0c;他们的对话充满了技术性与娱乐性。 第一轮&#xff1a;Spring框架与数据库 面试官&#xff1a;“谢飞机&#xff0c;能解释一下…

OpenCV CUDA模块图像过滤------创建一个 Scharr 滤波器函数createScharrFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于创建一个 Scharr 滤波器&#xff08;基于 CUDA 加速&#xff09;&#xff0c;用于图像的一阶导数计算。它常用于边缘检测任务中&#…

yolov8分割任务的推理和后处理解析

文章目录 一、前言二、分割模型的前向推理1. 检测结果&#xff1a;来自Detect类的输出2. 分割结果&#xff08;最终&#xff09;3. 与Detect的主要区别4. 工作流程 三、后处理1. 非极大值抑制&#xff08;NMS&#xff09;过滤检测框2. 分割原型&#xff08;Mask Prototypes&…

4.1.1 Spark SQL概述

Spark SQL是Apache Spark的一个模块&#xff0c;专门用于处理结构化数据。它引入了DataFrame这一编程抽象&#xff0c;DataFrame是带有Schema信息的分布式数据集合&#xff0c;类似于关系型数据库中的表。用户可以通过SQL、DataFrames API和Datasets API三种方式操作结构化数据…

华为OD机试真题——书籍叠放(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 200分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

尚硅谷redis7 63-69 redis哨兵监控之理论简介

63 redis哨兵监控之理论简介 什么是哨兵 master挂了如何办?从机原地待命。此时数据只能读取不能更新。因此需要&#xff1a; 吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库, 哨兵的作用 1、监控redis运行状态,包括master和slave…

word文档格式规范(论文格式规范、word格式、论文格式、文章格式、格式prompt)

文章目录 prompt prompt [格式要求] - 字体&#xff1a;中文宋体小四&#xff1b;英文Times New Roman 12pt&#xff1b;标题黑体 - 行距&#xff1a;1.5倍&#xff08;段前段后0行&#xff09; - 边距&#xff1a;A4默认&#xff08;上下2.54cm&#xff0c;左右3.17cm&…

SpringBoot+tabula+pdfbox解析pdf中的段落和表格数据

一、前言 在日常业务需求中&#xff0c;往往会遇到解析pdf文件中的段落或者表格数据的需求。 常见的做法是使用 pdfbox 来做&#xff0c;但是它只能提取文本数据&#xff0c;没有我们在文件页面上面的那种结构化组织&#xff0c;文本通常是散乱的包含各种换行回车空格等格式&a…

【Elasticsearch】stored_fields

在 Elasticsearch 中&#xff0c;stored_fields 是一个非常重要的概念&#xff0c;主要用于控制文档存储和检索时的行为。以下是对 stored_fields 的详细解释&#xff1a; 1\. stored_fields 的作用 stored_fields 用于指定在检索文档时需要返回的字段。默认情况下&#xff0c;…

计算机网络 | 1.1 计算机网络概述思维导图

附大纲&#xff1a; 计算机网络的概念 一个通过通信设备与线路把不同计算机系统连接起来&#xff0c;实现资源共享和信息传递的系统 计算机网络的组成 从组成成分上 硬件&#xff1a;主机、通信链路、交换设备、通信处理机软件&#xff1a;网络操作系统、聊天软件等协议&…

HOW - 简历和求职面试宝典(三)

文章目录 1. 面试邀约2. 开始面试和自我介绍第一、面试前的准备工作第二、如何全面地介绍自己1. 面试邀约 第一、先认识日常HR 的工作流程 首先,电话沟通是 HR 核心工作内容的一部分。电话沟通分为两种:一种是电话预约;另外一种是电话确认。 电话预约很清晰,就是确认面试…

Java基础 Day24

一、进程和线程 1、进程 &#xff08;1&#xff09;概念 进程 (Process) 是计算机中的程序关于某数据集合上的一次运行活动 是系统进行资源分配的基本单位 简单理解&#xff1a;程序的执行过程&#xff08;正在运行的应用程序&#xff09; &#xff08;2&#xff09;特性…

C#学习:基于LLM的简历评估程序

前言 在pocketflow的例子中看到了一个基于LLM的简历评估程序的例子&#xff0c;感觉还挺好玩的&#xff0c;为了练习一下C#&#xff0c;我最近使用C#重写了一个。 准备不同的简历&#xff1a; 查看效果&#xff1a; 不足之处是现实的简历应该是pdf格式的&#xff0c;后面可以…