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

面试题之数据库-mysql高阶及业务场景设计

最近开始面试了,410面试了一家公司 针对自己薄弱的面试题库,深入了解下,也应付下面试。在这里先祝愿大家在现有公司好好沉淀,定位好自己的目标,在自己的领域上发光发热,在自己想要的领域上(技术管理、项目管理、业务管理等)越走越远!希望各位面试都能稳过,待遇都是杠杠的!

mysql基础问题可以查看:两篇博客会进行不定期更新,更新慢了请大家谅解,希望在下个月能读透所有的技术问题,并找到合适的一个公司:面试题之数据库相关-mysql篇-CSDN博客

1.如何设计一个支撑每秒10万写入的高并发MySQL系统
  • 分布式架构核心原则
    • 分布式架构原则:
      • 分而治之:讲写入负载分散到多个节点中
      • 异步处理:解耦即使相应与数据持久化
      • 冗余扩展:所有组件无单点故障
    • 典型架构拓扑
    • 客户端 → 负载均衡 → 写入API层 → 消息队列 → 分库分表集群↓缓存集群↓数据分析层
  • 分库分表详细方案
    • 分片策略设计
      • 水平分库分表
      • 分片路由策略
    • 一致性哈希扩容流程
      • 新增物理节点注册到元数据中心

      • 数据迁移工具扫描待迁移分片

      • 双写新旧分片直至数据同步完成

      • 流量切换至新分片

      • 清理旧分片冗余数据

  • 写入链路优化
    • 异步写入架构
  • 1. 客户端请求 → 2. API服务验证 → 3. 写入Kafka → 4. 返回成功响应↓
    5. 消费者批量写入MySQL → 6. 更新Redis缓存
    • 批量写入优化
    • 消息队列配置:kafka生产配置
  • mysql极致优化
    • 关键的innodb参数
    • 连接与线程配置
  • 高可用保障措施
    • 多活数据中心:设置双主同步且都有备库,主库通过专线同步到热备主库,热备主库同步热备从库信息
    • 故障自动转移机制
  • 性能验证方法
    • 压测工具
    • 关键指标监控
    • 指标阈值监控工具
      QPS单库<1万Prometheus
      主从延迟<100mspt-heartbeat
      线程运行数<max_connections×80%Grafana
      磁盘IOPS<标称值70%iostat
  • 典型解决方案
    • 热点数据问题
      • 动态分片:将热点分片进一步拆分

      • 本地缓存:在应用层缓存热点分片路由

      • 限流保护:对特定分片实施写入限流

    • 分布式事务处理

      • 本地写入消息队列

      • 异步发送MQ(可靠消息服务保证)

2.MySQL Group Replication vs MGR vs 传统主从复制?
  • 核心架构差异
特性传统主从复制MySQL Group Replication (MGR)
拓扑结构主从星型拓扑全对称P2P架构
数据同步方式异步/半同步复制基于Paxos协议的原子广播
组成员管理手动配置自动故障检测与成员管理
一致性级别最终一致性即时一致性(可配置)
故障切换需手动或借助工具自动选举新Primary
  • 技术对比
    • 传统同步
      • 数据流:基于binlog的逻辑日志复制
      • 模式:
        • 异步复制(默认)
        • 半同步复制(after_commit/after_sync)
      • 局限:
        • 脑裂风险
        • 切换时可能丢数据
        • 从库可能落后
    • MGR架构
      • 核心组件:
        • group communication engine:基于paxos的xcom协议
        • certification layer:冲突检测
      • 工作流程
        • 事务在本地执行
        • 广播到组内所有节点
        • 多数节点确认后提交
        • 应用事务到所有节点
      • 关键能力对比
能力维度传统复制MGR
自动故障转移❌ 需要VIP/Proxy✅ 内置自动选举
多主写入❌ 单主✅ 支持多主(需配置)
数据一致性最终一致强一致(多数节点确认)
网络分区容忍❌ 可能丢数据✅ 遵循CP原则
节点扩展性线性扩展读能力建议3-9个节点
  • 性能指标对比
指标传统半同步复制MGR单主模式MGR多主模式
写入TPS12,0009,5007,200
平均延迟(ms)81522
故障切换时间(s)5-30(手动)1-31-3
网络带宽消耗1X2.5X3X
  • 适用场景

    • 传统复制适合:

      • 读写分离的报表系统

      • 异地灾备场景

      • 对一致性要求不高的业务

      • 已有成熟中间件管理的环境

    • MGR适合:

      • 需要高可用的核心业务系统

      • 金融级数据一致性要求的场景

      • 云原生/K8s环境部署

      • 希望减少外部依赖的架构

Q:MGR的Paxos协议如何保证数据一致性?

A:MySQL Group Replication (MGR) 通过改进的Paxos协议(具体实现为XCom)来保证分布式环境下的数据一致性

  • 一致性保证核心步骤
    • 事务准备阶段:
      • 客户端事务在Primary节点执行

      • 生成包含所有修改的写集(writeset)

      • 写集通过认证层进行冲突检测

    • 提案广播:

      • Primary节点作为Proposer将写集广播给所有节点

      • 节点收到提案后:

        • 检查自身状态是否正常

        • 验证写集冲突

        • 返回Promise应答

    • 多数派确认(Accept/Accepted)

      • 当收到多数节点(N/2+1)的Promise后

      • Primary发送Accept请求

      • 各节点将事务写入relay log(内存+磁盘)

    • 全局提交(Learn)

      • 收到多数节点的Accepted响应后

      • Primary提交本地事务

      • 广播Commit消息通知所有节点

      • 所有节点应用该事务

  • 关键一致性保护机制
    • 多数派原则(Quorum)
      • 每个事务必须得到多数节点确认

      • 3节点集群至少2个确认

      • 5节点集群至少3个确认

      • 公式:W + R > N (W写节点数, R读节点数, N总节点数)

    • 冲突检测与解决
      • 基于GTID的认证:检查冲突

      • 版本向量:每个事务携带版本信息

      • 视图同步

  • 异常处理机制

    • 节点故障处理

      • 故障类型处理方式
        少数节点宕机继续服务
        多数节点宕机停止服务
        网络分区多数派分区继续服务
    • 脑裂预防

      • 世代时钟(Epoch Number):每次视图变更递增

      • Fencing机制:旧Primary自动降级

    • 恢复流程

      • 故障节点重新加入

      • 从最新节点拉取GTID集合

      • 自动选择增量同步或全量同步

      • 追平数据后重新加入组

  • 与经典的paxos区别

    • 特性经典PaxosMGR-XCom
      成员管理静态动态
      消息传输原始UDPTCP+流控
      领导者角色临时选举稳定Primary
      数据载体任意值事务写集
      持久化点多数接受多数确认
  • 性能优化

    • 流水线化处理

    • 批量认证:合并多个事务的写集检测,减少网络往返次数

    • 流控机制

  • 一致性级别配置

    • MGR支持两种模式:

      • 单主模式:SET GLOBAL group_replication_single_primary_mode=ON;

        • 所有写操作到primary

        • 保证线程一致性

      • 多主模式:SET GLOBAL group_replication_enforce_update_everywhere_checks=ON;

        • 任何节点可写

        • 保证因果一致性

3.数据误删后,如何快速恢复
  • 紧急处理流程:
    • A[发现误删] --> B[立即停止相关服务] --> C[评估影响范围] --> D[选择恢复方案] --> E[执行恢复] --> F[数据验证] --> G[恢复服务]
  • 基于备份恢复流程
    • 全量数据备份恢复:根据每日备份的数据进行dump恢复
    • 根据时间点恢复:需要binlog有完整的日志
  • 无备份恢复方案
    • 使用binlog2sql工具

    • 使用美团开源的myflash工具

  • innodb引擎特殊恢复

    • 使用undrop-for-innodb工具适用场景:无备份且binlog不可用

    • 数据库恢复服务:MySQL数据恢复专家、DiskInternals MySQL Recovery、Kroll Ontrack

  • 不同操作的恢复策略

操作类型恢复难度推荐方案
DELETE误删★★☆binlog2sql闪回
DROP TABLE★★★全备恢复+binlog
TRUNCATE★★★☆解析表空间文件
DROP DATABASE★★★★全备恢复
磁盘损坏★★★★★专业恢复工具
  • 预防措施
    • 备份策略配置:每天进行数据备份
    • 安全防护配置:设置延迟复制从库,启动回收站功能
    • 操作审计措施:使用预生产环境测试更新功能并对DDL操作的语句进行审计后执行
  • 关键恢复原则
    • 立即停止写入:防止覆盖原有数据页

    • 优先使用逻辑备份:比物理恢复更安全可控

    • 测试恢复流程:定期验证备份有效性

    • 保留多个副本:采用3-2-1备份策略(3份副本,2种介质,1份离线)

Q:基于binlog的闪回(Flashback)技术实现?

A:MySQL闪回技术是通过逆向解析binlog来恢复误操作数据的关键手段

  • 闪回基础原理
    • binlog记录机制
      • ROW格式:记录行级别变更前镜像(before_image)和变更后镜像(after_image)
      • 写入时机:事务提交时一次性写入整个事务的binlog
    • 闪回核心思想:delete逆向操作原理
  • 主流的闪回技术
工具名称开发方语言特点适用场景
binlog2sql大众点评Python纯SQL实现精细恢复
MyFlash美团C二进制级别高性能恢复
mysqlbinlog_flashback阿里C++集成补丁云环境
  • binlog2sql实现深度解析
    • 核心的处理流程:
      • A[解析binlog] --> B[提取DML事件] --> C[构建行变更对象] --> D[生成逆向SQL] --> E[过滤与排序] --> F[输出恢复脚本]
    • 关键实现代码:
      • 逆向使用update操作
      • 解析闪回sql,执行恢复

4.主从延迟的根本原因即解决方案

5.InnoDB的自适应哈希索引(AHI)适用场景?

Q:为什么高频等值查询能加速?

6.MySQL的CPU利用率飙高,如何定位?

Q:通过performance_schema分析热点SQL与锁争用?

7.如何优化一条SELECT COUNT(*) FROM big_table?

Q:为什么InnoDB不缓存总行数?替代方案?

8.如果让你设计一个分布式MySQL,你会考虑哪些问题?

Q:数据分片、一致性协议(Raft/Paxos)、分布式事务(XA/TCC)的选择?

9.MySQL 8.0相比5.7的核心改进?

Q:窗口函数、CTE、原子DDL、直方图统计?

10.为什么MySQL默认隔离级别是RR(可重复读)?
  • mysql主从复制是通过binlog日志进行数据同步的,而早期的版本中binlog记录的是sql语句的原文。若此时binlog格式设置为statement时,mysql可能在从库执行的sql逻辑与主库不一致。
  • 比如在删除某个区间数据时:delete from user where age >=13 and create_time <= '2025-4-15' limit 1;
  • 为什么在sql执行结果不一致:
    • 在主库执行这条sql的时候,用的是索引age;而在备库执行这条语句的时候,却使用了索引create_time.mysql执行优化器会进行采样预估,在不同的mysql库里面,采样计算出来的预估结果不一样,会影响优化器的判断,由于优化器会进行成本分析,可能最终选择索引不一致。这跟sql执行过程有一定关系。
    • 而因为这条delete语句带了limit,所以查出来的记录很大可能不会是同一条数据,排序可能不一样,会导致准备数据不一致的情况。
    • 另外使用RC或者RU的话,是不会添加GAP LOCK间隙锁,而主从复制过程中出现的事务乱序问题,更容易导致备库在SQL回滚后与主库内容不一致。所以mysql选择了RR隔离级别
    • RR级别在更新数据时会增加记录锁和间隙锁,可以避免事务乱序导致的数据不一致问题。

Q:为啥ORACLE选择的默认级别是RC?

A:oracle目前支持三种事务隔离级别,RC(读已提交,默认),serializable(可串行化),read-only(只读);其中Read-only隔离级别类似于序列化隔离级别,但只读事务甚至不允许在事务中进行数据修改,显然只能选择RC

Q:为何大厂要改成RC?

A:出于性能、死锁和实时性高的需求

  • 提高并发性,RC隔离级别下,锁粒度小,只锁住一行数据,提高了并发性,尤其读密集的应用下表现优异。行级锁,减少了锁冲突,提升了并发度。
  • 减少死锁,RR级别下会增加GAP Lock和next-key lock,是的所得粒度变大,死锁的概率也增大。而RC隔离级别下不存在间隙锁,只需行锁即可,减少了死锁的发生概率。
  • 满足实时性:RC每次读取数据都会获取最新的行版本,适合实时性要求高的应用,而RR读取的数据可能不会反应出其他事务对数据的更改,无法满足对实时性要求高的场景
  • 简化主从同步,RC要求实行行式binlog,有助于减少主从同步时数据不一致问题

11.分库分表下如何实现精准分页?
  • 全局排序发(推荐)
    • 实现步骤:
    • 统一排序字段,确保所有的分片使用相同的排序规则,如使用时间排序
    • -- 每个分片执行
      SELECT * FROM table ORDER BY sort_field LIMIT (pageNo-1)*pageSize + pageSize

    • 各分片查询,想所有分片发送相同的分页查询请求
    • 内存归并,将分片返回的结果在内存中排序,然后截取制定页数据
    • 性能优化:使用流式处理避免内存溢出
    • 优点是结果绝对精确,缺点是随着页码增大性能会下降,出现深分页问题
  • 二次查询法(优化深分页)
    • 实现步骤
    • 各分片查询排序字段值(不返回具体完整行数据)
    • SELECT id FROM table ORDER BY create_time LIMIT 10000, 10
      
    • 获取最小/最大边界值
    • 用边界值精确查询完整数据
    • SELECT * FROM table 
      WHERE create_time BETWEEN ? AND ?
      ORDER BY create_time LIMIT 10
  • 分片键连续分页法
    • 适用场景:
      • 分片键本身具有连续性,如时间范围分片
      • 能预先确定分片键的分布情况
    • 实现方式:
      • 根据分片键确定数据所在分片
      • 只向特定分片发起查询
      • 在该分片内做常规分页
  • 适用elasticSeach等搜索引擎
    • 将分库分表数据同步到ES
    • 利用ES的分布式分页能力
    • 注意:
      • ES的form+size方式也有深分页限制
      • 可考虑使用search_after或者scroll api
  • 业务层解决方案
    • 禁止跳页
      • 只提供下一页功能
      • 每次携带最后一条记录的排序字段值
      • SELECT * FROM table 
        WHERE create_time < ? 
        ORDER BY create_time DESC 
        LIMIT pageSize
  • 性能优化建议
    • 避免深分页:产品设计上限制最大页码
    • 使用覆盖索引:减少回表操作
    • 缓冲热门页:对前几页结果进行缓冲
    • 预计算:对静态数据可提前计算分页结果
    • 分批获取:客户端分批加载数据(无线滚动)
  • 技术选型
方案精准度性能实现复杂度适用场景
全局排序中/差数据量中等,要求绝对准确
二次查询较好深分页场景
分片键连续分片键分布规律明显
ES搜索已使用ES的场景
禁止跳页用户浏览行为

12.mysql如何同步ES?        

分库分表的情况下,如果需要精确的查找数据,需要用elasticsearch的集成,此时如何同步ES,有四种方案,应用同步双写、MQ队列双写、基于SQL脚本同步、基于binlog同步组件

  • 应用数据库同步双写
    • 特点:应用在同步数据库的时候也同步给ES,保障了ES的实时性,实现起来相对简单,不需要引入额外的组件或者复杂的逻辑。但是每次写入mysql的同时写入ES可能会对两个系统的性能产生影响,在高并发的情况下会到值双写失败导致数据不一致等问题,且每次写入操作都需要双写逻辑,增加了业务逻辑的复杂性和维护难度
    • 具体实现:
      • 代码调整:每次数据库调整的时候,复制相同逻辑到elasticsearch
      • 事务管理:使用数据库的事务确保操作的院子性,避免数据不一致
      • 性能优化:尽量批量操作或者使用异步方式来处理,降低对性能的影响
  • MQ队列异步双写
    • 特点:利用MQ队列可以实现异步处理,通过异步方式,可以降低对数据库写入性能的影响,利用消息队列的持久化和重试机制,可以调数据的可靠性。但是由于异步处理会存在数据延迟问题,而且需要引入消息队列和额外的消费者逻辑,增加系统的复杂性。
    • 具体实现:
      • 消息队列集成:选择兵集成一个消息队列,如kafka或者RabbitMQ
      • 业务逻辑修改:将数据写入Mysql后,将变更信息发送到消息队列
      • 消费者开发:开发消费者服务,从消息队列中读取消息并异步写入到elasticsearch。
      • 异步处理:为消息队列的消费这实现异步处理和重试逻辑
  • 基于SQL抽取:
    • 特点:通过定时任务,根据数据库的时间戳字段来抽取并同步数据到elasticsearch,同步哦该方式无序修改业务逻辑对原系统无感知,通过定时任务逻辑相对简单易于理解与维护。但是数据库同步存在延迟无法满足实时性要求,定时任务可能对数据库产生额外的查询压力。
    • 具体实现:
      • 时间戳字段添加,在对应的数据库表中添加时间戳,用于记录数据变更
      • 定时任务配置:按照固定频率查询mysql中自上次同步后发生变化的数据。
      • 数据抽取:定时任务将查询结果抽取出来,同步到elasticsearch。
      • 数据同步:将抽取的数据写入到elasticsearch完成同步过程。
  • 利用binlog进行同步
    • 特点:利用binlog日志,通过消息队列或者直接消费binlog变化来同步数据库到ES中。不需要修改现有的业务代码,对现有系统无感知,可以利用binlog精确捕捉到数据库的所有变更,确保数据同步的完整性,binlog可以高效地处理数据变更,对源数据库性能营销较小,通常配合消息队列使用,在网络波动或者服务故障的情况下也能保证数据库最终一致性。但是需要搭建和维护binlog监听和消息对垒系统,增加了系统架构的复杂性,虽然基于实时同步,但是遇到消息队列积压,可能会出现数据延迟。
    • 具体实现:
      • binlog启用:确保mysql实例开启了binlog功能,并且binlog格式(row或者mixed)能够支持所需的数据库同步需求
      • binlog监听配置:部署并配置binlog监听器(如debezium),监听制定的mysql实例和数据库
      • 消息队列集成:将binlog监听器和消息队列(kafka等)集成,确保binlog变更能够转换成消息并发送到队列中
      • 消息消费者开发:开发消息消费者服务,该服务从消息队列中读取binlog变更消息,将其转换成ES可以理解的格式
      • 数据同步:消息消费者将转换的数据写入ES完成同步
      • 异常处理:实现异常处理机制,确保数据在同步失败后能够进行重试或者日志记录一遍排障。

相关文章:

面试题之数据库-mysql高阶及业务场景设计

最近开始面试了&#xff0c;410面试了一家公司 针对自己薄弱的面试题库&#xff0c;深入了解下&#xff0c;也应付下面试。在这里先祝愿大家在现有公司好好沉淀&#xff0c;定位好自己的目标&#xff0c;在自己的领域上发光发热&#xff0c;在自己想要的领域上&#xff08;技术…...

STM32F407实现SD卡的读写功能

文章目录 前言一、SDIO简介二、SD卡操作1.读操作2.写数据3.擦除操作4.最终效果5.完整工程 前言 在STM32中存储空间是有限的&#xff0c;对于需要存储大量数据的项目就需要外扩存储空间&#xff0c;一般会选择FLASH、EEPROM或者SD卡。SD是这三种中可达空间最大的&#xff0c;所…...

Vue 3中的setup【与Vue 2的区别】

一、前言 在Vue 3中&#xff0c;setup是组合式API&#xff08;Composition API&#xff09;的核心入口函数。其核心作用是为组件提供灵活的逻辑组织方式&#xff0c;解决复杂组件中逻辑碎片化的问题。 二、核心作用 1.初始化响应式数据 通过ref和reactive等API声明响应式状态…...

基于PySide6的YOLOv8/11目标检测GUI界面——智能安全帽检测系统

&#x1f4d6; 前言 在工业安全领域&#xff0c;智能安全帽检测是保障工人生命安全的重要技术手段。本文将介绍如何利用YOLOv8/YOLOv11目标检测算法与PySide6 GUI框架&#xff0c;开发一套功能完整的智能安全帽检测系统。系统支持&#xff1a; 动态切换检测模型&#xff08;Y…...

AF3 generate_chain_data_cache脚本解读

AlphaFold3 generate_chain_data_cache 脚本在源代码的scripts文件夹下。该脚本从指定目录中批量解析 mmCIF/PDB 文件的工具,并将每个链的基本信息(序列、分辨率、是否属于聚类等)提取并写入 JSON 文件,主要用于后续蛋白质建模、过滤或训练数据准备。 源代码: import ar…...

C/C++不透明指针

今天在ESP32编程中又看到了这个词&#xff0c;这个词出现在cursor回答中。回答如下&#xff1a; struct esp_netif_obj; typedef struct esp_netif_obj esp_netif_t;esp_netif_obj的具体实现细节被隐藏了用户代码只能通过esp_netif_t类型指针来操作网络接口这种封装方式被称为…...

电力实习中需要注意哪些安全用电问题

电力实习中需要注意哪些安全用电问题 在电工实习中&#xff0c;由于涉及到电力设备和电气设施&#xff0c;安全问题尤为重要。 以下是电工实习中需要注意的安全问题&#xff1a; 一、电气设备及线路安全 使用电气设备前&#xff0c;应确保设备具有良好的电气绝缘&#xff0c…...

【版本控制】git命令使用大全

大家好&#xff0c;我是jstart千语。今天来总结一下git的使用命令&#xff0c;上文会先将git命令都列出来&#xff0c;便于快速寻找&#xff0c;然后还会对部分常用命令图文讲解&#xff0c;适合新手&#xff0c;让你快速地理解。最后还会总结在idea中使用git。如果有缺失的&am…...

Day09【基于Tripletloss实现的简单意图识别对话系统】

基于Tripletloss实现的表示型文本匹配 目标数据准备参数配置数据处理Triplet Loss目标Triplet Loss计算公式公式说明 模型构建网络结构设计网络训练目标损失函数设计 主程序推理预测类初始化加载问答知识库文本向量化知识库查询主程序main测试测试效果 参考博客 目标 在此之前…...

什么是HIGG验厂,HIGG验厂有什么要求?HIGG验厂有什么作用

什么是Higg验厂&#xff1f; Higg验厂&#xff08;Higg Facility Environmental Module, FEM & Higg Facility Social & Labor Module, FSLM&#xff09;是由可持续服装联盟&#xff08;SAC, Sustainable Apparel Coalition&#xff09;开发的一套评估工具&#xff0c…...

SmolVLM新模型技术解读笔记

原文地址&#xff1a;https://huggingface.co/blog/zh/smolervlm 一、核心发布概要 新成员亮相&#xff1a;推出256M&#xff08;2.56亿参数&#xff09;与500M&#xff08;5亿参数&#xff09;视觉语言模型关键定位&#xff1a;目前全球最小VLM&#xff08;256M&#xff09;…...

解决USG5150防火墙web无法连接问题

参考 防火墙usg5500&#xff08;V300R001C00SPC700&#xff09;WEB界面无法登陆 现象 Web防火墙突然无法web登录&#xff0c;Ping通&#xff0c;但是Tcpping端口不通。无论是从外网、还是内网都一样。 Probing 192.168.100.1:1234/tcp - No response - time2047.528ms Prob…...

Resilience4j与Spring Cloud Gateway整合指南:构建弹性的API网关

什么是Resilience4j&#xff1f; Resilience4j是一个轻量级的容错库&#xff0c;专为Java 8和函数式编程设计。它借鉴了Netflix Hystrix的设计理念&#xff0c;但更加轻量且专注于Java 8的函数式编程风格。Resilience4j提供了多种容错机制&#xff0c;帮助开发者构建弹性强健的…...

Quipus,LightRag的Go版本的实现

1 项目简介 奇谱系统当前版本以知识库为核心&#xff0c;基于知识库可以快构建自己的问答系统。知识库的Rag模块的构建算法是参考了LightRag的算法流程的Go版本优化实现&#xff0c;它可以帮助你快速、准确地构建自己的知识库&#xff0c;搭建属于自己的AI智能助手。与当前LLM…...

怎样完成本地模型知识库检索问答RAG

怎样完成本地模型知识库检索问答RAG 目录 怎样完成本地模型知识库检索问答RAG使用密集检索器和系数检索器混合方式完成知识库相似检索1. 导入必要的库2. 加载文档3. 文本分割4. 初始化嵌入模型5. 创建向量数据库6. 初始化大语言模型7. 构建问答链8. 提出问题并检索相关文档9. 合…...

研发效率破局之道阅读总结(2)流程优化

研发效率破局之道阅读总结(2)流程优化 Author: Once Day Date: 2025年4月15日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 程序的艺术_Once-Day…...

解决PIP 安装出错ERROR: cp310-cp310-manylinux_2_28_x86_64.whl is not a supported wheel

ERROR: torch-2.8.0.dev20250325cu128-cp310-cp310-manylinux_2_28_x86_64.whl is not a supported wheel on this platform. 可以 pip debug --verbose | grep manylinux | grep cp310 WARNING: This command is only meant for debugging. Do not use this with automation f…...

b站golang后端开发一面

go和其他语言的对比 Golang&#xff08;也称为Go语言&#xff09;是一种静态类型、编译型语言&#xff0c;由Google开发&#xff0c;以其简洁、高效和强大的并发处理能力著称。 Golang的设计哲学强调简洁明了。与Python类似&#xff0c;Go语法简洁&#xff0c;易于学习和编写。…...

Vue3 SSR Serverless架构革命:弹性计算与量子加速

一、全维度Serverless SSR架构 1.1 蜂巢式弹性调度系统 1.2 冷启动时间优化表 优化策略Node.js冷启(ms)Deno冷启(ms)Bun冷启(ms)裸启动1800960420预编译二进制650380210内存快照预热22016090WASM实例池15011075量子状态预载453832 二、边缘渲染协议升级 2.1 流式SSR响应协议…...

深度大脑:AI大模型的设计与运行原理

AI大模型的设计与运行原理涉及多个复杂环节&#xff0c;以下是系统化的总结&#xff0c;结合核心要点与补充细节&#xff1a; 一、AI大模型的设计 1. 深度神经网络架构 Transformer&#xff1a;取代RNN/CNN&#xff0c;解决长程依赖问题。核心组件&#xff1a; 自注意力机制…...

Python网络编程从入门到精通:Socket核心技术+TCP/UDP实战详解

引言 网络编程是构建现代分布式系统的核心能力&#xff0c;而Socket作为通信的基石&#xff0c;其重要性不言而喻。本文将从零开始&#xff0c;通过清晰的代码示例、原理剖析和对比分析&#xff0c;带你彻底掌握Python中的Socket编程技术&#xff0c;涵盖TCP可靠连接、UDP高效…...

使用CMake生成Opencv对应库文件

opencv环境配置&#xff1a;版本3.4/3.2(OpenCV-3.4.3) CMake&#xff1a;3.12.1 D:\OpenCv\opencv\build\x64\vc16\bin路径添加至环境变量中 CMake环境配置&#xff1a; D:\Install_QT\bin路径添加至环境变量中&#xff08;path中即可&#xff09; QT5环境变量配置&#xff1a…...

MySQL 数据库备份和恢复全指南

MySQL 是一款常用的开源数据库系统&#xff0c;在日常运维中&#xff0c;数据备份和恢复是系统管理的重要一环。本文将细致介绍 MySQL 两大备份方案—— mysqldump 和 XtraBackup&#xff0c;包括备份方式、恢复步骤、定时脚本、远程备份和常见问题处理方案。 一、mysqldump 备…...

关于我的服务器

最近我买了台腾讯云服务器&#xff0c;然后新手小白只会用宝塔。。。 安装完之后默认的端口是8888&#xff0c;打开面板就会提示我有风险。然后 我改了端口之后&#xff0c;怎么都打不开。 于是 学到了几句命令可以使用&#xff1a; //查看端口是否已经修改成功 cat www/se…...

spring面试题

1&#xff0c;如何理解spring boot中的starter Starter是一种简化依赖管理和自动配置的核心机制&#xff0c;能快速集成特定功能模块&#xff0c;无需手动配置复杂依赖和xml文件。 依赖简化&#xff1a;将某个功能模块所需的所有依赖打包成一个“一站式”依赖&#xff0c;开发…...

python setup.py学习

Python-setup进阶打包命令 Python-setup进阶打包命令_python setup-CSDN博客 packages 需要处理的包目录&#xff08;包含__init__.py的文件夹&#xff09;&#xff0c;这里通常使用 find_packages()&#xff0c;它默认在和setup.py同一目录下搜索各个含有 __init__.py的包。…...

最简单的使用SDL2 播放原始音频数据程序

author: hjjdebug date: 2025年 04月 15日 星期二 14:02:05 CST description: 最简单的使用SDL2 播放原始音频数据程序 文章目录 1.最简单的播放音频的程序是什么样子的?2. 怎样用SDL 来编写音频播放器代码?2.1 SDL播放音频核心代码:混音函数2.2 先看看音频播放的可能的两种框…...

利用IDEA开发Spark-SQL

创建子模块Spark-SQL&#xff0c;并添加依赖 创建Spark-SQL的测试代码&#xff1a; 运行结果&#xff1a; 自定义函数&#xff1a; UDF&#xff1a; UDAF&#xff08;自定义聚合函数&#xff09; 强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数&#xff0c; …...

随身Wi-Fi能跑PCDN?

随身WiFi可以用于运行PCDN&#xff08;点对点内容分发网络&#xff09;&#xff0c;但存在技术限制和潜在风险&#xff0c;需谨慎操作。 可行性分析 技术基础 随身WiFi本质是便携式无线路由器&#xff0c;具备网络接入和分发能力&#xff0c;理论上可配置为PCDN节点。 部分用户…...

Google-A2A协议全面解析:一文掌握Agent-to-Agent协议的核心与应用

前言&#xff1a; 在当今人工智能技术飞速发展的时代&#xff0c;智能体&#xff08;Agent&#xff09;已悄然融入我们生活的各个角落。无论是个人智能助手&#xff0c;还是企业的自动化工具&#xff0c;各类AI代理的应用愈发广泛。但目前这些智能体之间大多处于孤立状态&…...

jmeter压测工具出现乱码

然后 prev.setDataEncoding(“utf-8”)...

大模型训练显存压缩实战:ZeRO-3 vs 梯度累积 vs 量化混合策略

一、显存瓶颈的本质与挑战 大模型训练面临的核心矛盾是模型参数量指数级增长与GPU显存容量线性提升之间的鸿沟。以175B参数模型为例&#xff0c;其显存消耗主要来自三个方面&#xff1a; 参数存储‌&#xff1a;FP32精度下需700GB显存‌梯度缓存‌&#xff1a;反向传播产生的…...

WPS JS宏编程教程(从基础到进阶)-- 第七部分:JS对象在WPS中的应用

目录 第7章 JS对象在WPS中的应用7-1 对象创建的几种方法从零理解对象&#xff1a;数据收纳盒两种基础创建方式代码解析表 7-2 对象属性的查、改、增、删像操作Excel单元格一样管理属性1. 点操作符&#xff08;静态键名&#xff09;2. 中括号操作符&#xff08;动态键名&#xf…...

网络编程(UDP)

server:服务器 # import socket # # 传递udp协议参数 # sk socket.socket(typesocket.SOCK_DGRAM) # # # 绑定ip及端口 # sk.bind(("127.0.0.1",8080)) # # print("等待客户端发送消息") # # # 直接发送 # msg,addr sk.recvfrom(1024) # # print(msg.d…...

深入讲解 CSS 选择器权重及实战

1. 权重计算规则详解 CSS 选择器的优先级由 三元组 (x, y, z) 决定&#xff0c;比较规则如下&#xff1a; 选择器类型权重值 (x, y, z)示例ID 选择器x 1#header → (1,0,0)类/伪类/属性y 1.active, :hover元素/伪元素z 1div, ::before 比较规则&#xff1a;从左到右逐级比…...

Mysql的查询

1.Mysql的基本查询 语法&#xff1a;select*from 表名;代表查询所有数据的所有列 SELECT * FROM classinfo; SELECT * FROM studentinfo; select 字段1&#xff0c;字段2.....from 表名;查询数据的指定字段 查询studentinfo表的学生姓名和年龄 SELECT stuname,age FROM stu…...

RaabitMQ 快速入门

&#x1f389;欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ &#x1f389;感谢各位读者在百忙之中抽出时间来垂阅我的文章&#xff0c;我会尽我所能向的大家分享我的知识和经验&#x1f4d6; &#x1f389;希望我们在一篇篇的文章中能够共同进步&#xff01;&#xff01;&…...

LLM: 探索LLM视觉缺陷

文章目录 前言一、Constructing MMVP Benchmarks1、CLIP-blind pair 二、MMVP-VLM bench1、Model size influence2、correlation between CLIP MLLMs 三、Mixture of Features1、Additive MoF Experiment2、Interleaved MoF Experiment 总结 前言 在使用多模态大模型时候是否会…...

常用的 ​​SQL 语句分类整理​​

以下是常用的 ​​SQL 语句分类整理​​&#xff0c;覆盖数据查询、操作、表管理和高级功能&#xff0c;适用于大多数关系型数据库&#xff08;如 MySQL、PostgreSQL、SQL Server&#xff09;&#xff1a; 目录 ​​一、数据查询&#xff08;DQL&#xff09;​​ ​​1. 基础查…...

Go之defer关键字:优雅的资源管理与执行控制

在Go语言中&#xff0c;defer关键字是处理资源释放、错误恢复和代码逻辑清理的利器。它看似简单&#xff0c;却隐藏着许多设计哲学和底层机制。本文将深入剖析defer的执行原理、使用场景和常见陷阱&#xff0c;助你掌握这一关键特性。 一、defer基础&#xff1a;延迟执行的本质…...

T1结构像+RS-fMRI影像处理完整过程记录(数据下载+Matlab工具箱+数据处理)

最近需要仿真研究T1结构像RS-fMRI影像融合处理输出目标坐标的可行性。就此机会记录下来。 为了完成处理&#xff0c;首先需要有数据&#xff0c;然后需要准备对应的处理平台和工具箱。那么正文开始~ &#xff08;1&#xff09;下载满足要求的开源数据 去OpenNEURO https://open…...

Flowable进阶-网关、事件和服务

网关 并行网关 并行网关允许将流程拆分为多个分支&#xff0c;也可以将多个分支汇集到一起。并行网关的功能是基于流入流出的顺序流。fork分支&#xff1a;用于任务的开始。并行后所有外出的顺序流&#xff0c;为每个顺序流都创建一个并发分支。 join汇聚&#xff1a;用于任务…...

【三维重建与生成】GenFusion:SVD统一重建和生成

标题:《GenFusion: Closing the Loop between Reconstruction and Generation via Videos》 来源&#xff1a;西湖大学&#xff1b;慕尼黑工业大学&#xff1b;上海科技大学&#xff1b;香港大学&#xff1b;图宾根大学 项目主页&#xff1a;https://genfusion.sibowu.com 文章…...

常见的爬虫算法

1.base64加密 base64是什么 Base64编码&#xff0c;是由64个字符组成编码集&#xff1a;26个大写字母AZ&#xff0c;26个小写字母az&#xff0c;10个数字0~9&#xff0c;符号“”与符号“/”。Base64编码的基本思路是将原始数据的三个字节拆分转化为四个字节&#xff0c;然后…...

有序二叉树各种操作实现(数据结构C语言多文件编写)

1.先创建tree.h声明文件( Linux 命令&#xff1a;touch tree.h)。编写函数声明如下(打开文件 Linux 操作命令&#xff1a;vim tree.h): //树的头文件位置 #ifndef __TREE_H__ #define __TREE_H__ //节点 typedef struct node{int data;//数据struct node* left;//记录左侧子节…...

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

作者&#xff1a;濯光、翼严 Kubernetes 配置管理的局限 目前&#xff0c;在 Kubernetes 集群中&#xff0c;配置管理主要通过 ConfigMap 和 Secret 来实现。这两种资源允许用户将配置信息通过环境变量或者文件等方式&#xff0c;注入到 Pod 中。尽管 Kubernetes 提供了这些强…...

特殊文件以及日志——特殊文件

一、特殊文件 必要性&#xff1a;可以用于存储多个用户的&#xff1a;用户名、密码。这些有关系的数据都可以用特殊文件来存储&#xff0c;然后作为信息进行传输。 1. 属性文件.properties&#xff08;键值对&#xff09; &#xff08;1&#xff09;特点&#xff1a; 都只能…...

Spark-SQL核心编程语言

利用IDEA开发spark-SQL 创建spark-SQL测试代码 自定义函数UDF 自定义聚合函数UDAF 强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数&#xff0c; 如 count()&#xff0c; countDistinct()&#xff0c;avg()&#xff0c;max()&#xff0c;min()。除此之外&…...

jdk 安装

oracle官网 : Java Archive | Oracle 中国 export JAVA_HOME/Users/xxxxx/app/services/x86jdk/jdk1.8.0_431.jdk/Contents/Home export PATH$JAVA_HOME/bin:$PATH 华为镜像网站&#xff1a;Index of java-local/jdk...

Missashe考研日记-day21

Missashe考研日记-day21 1 专业课408 学习时间&#xff1a;4h学习内容&#xff1a; 今天先把昨天学的内容的课后习题做了&#xff0c;整整75道啊&#xff0c;然后学了OS第二章关于CPU调度部分的内容&#xff0c;这第二章太重要了&#xff0c;以至于每一小节的内容都比较多&am…...