- 博客(71)
- 收藏
- 关注
原创 C++起始之路——用哈希表封装 myunordered_set 和 myunordered_map
本文详细讲解了如何基于哈希表原理实现简化版的myunordered_set和myunordered_map容器。通过分析哈希表的基本结构、冲突处理方法(拉链法)、键提取器设计等核心概念,展示了如何用同一套底层哈希表模板同时支持set和map两种容器。文章从节点结构、桶数组到插入、查找、删除等操作逐一实现,并指出当前实现的不足(如缺少迭代器、扩容策略简单等)。这个实践项目不仅能帮助理解STL容器的底层原理,还能提升模板编程、数据结构实现等C++核心能力。通过动手实现这些基础容器,学习者可以深入掌握哈希表的工作
2026-04-30 01:13:56
251
原创 解决 Python 报错:ModuleNotFoundError: No module named ‘pkg_resources’
Python开发中常见的"ModuleNotFoundError: No module named 'pkg_resources'"错误通常与setuptools缺失或环境配置不当有关。该错误可能出现在运行第三方项目、执行pip命令或使用虚拟环境时,主要原因包括:setuptools未安装、安装到错误环境、虚拟环境损坏或多Python版本冲突。解决方法包括:使用"python -m pip install setuptools"确保正确安装;检查Python和pip路
2026-04-30 00:01:04
1280
1
原创 HarmonyOS 5.0 IoT开发实战:构建分布式智能设备控制中枢与边缘计算网关
HarmonyOS 5.0分布式系统开发实战解析 本文深入探讨了基于HarmonyOS 5.0构建分布式智能设备控制系统的关键技术。系统采用三层架构设计:1)分布式软总线实现设备无感连接,支持自动发现与安全通信;2)统一设备管理层抽象异构设备能力,通过适配器模式实现跨品牌设备接入;3)智能场景引擎支持基于规则的自动化编排。在边缘计算方面,系统实现了本地AI推理框架,可动态选择最优计算后端(NPU/GPU/CPU),并建立端到端安全体系,包含设备认证、加密通信和异常检测。实战案例展示了智能家居场景中设备协同、
2026-04-27 20:43:06
568
原创 mysql如何设置定时自动备份脚本_编写shell脚本与cron任务
必须加--single-transaction(InnoDB)或--lock-all-tables(MyISAM),并搭配--routines--triggers--events、--default-character-set=utf8mb4,密码通过~/.my.cnf(chmod 600)或MYSQL_PWD安全传入,脚本需设PATH、用绝对路径、写全备份路径、重定向stderr,文件按日期命名并用find清理。关键不是“能不能导出”,而是“导出的能不能原样恢复”。
2026-04-22 19:56:34
174
原创 mysql连接无法释放导致执行中断_配置wait_timeout与连接池优化
MySQL连接卡在Sleep状态是因应用未正确关闭连接且服务端wait_timeout与连接池配置不匹配所致;MySQL 服务端默认 wait_timeout=28800(8 小时),但应用层如果用连接池却从不显式 close() 或没配空闲回收,连接就会一直挂着,直到服务端主动 kill——而这个 kill 恰好发生在你执行下一条语句前,报错 Lost connection to MySQL server during query 或 MySQL server has gone away。
2026-04-22 19:55:13
205
原创 如何隐藏左侧导航中的特定数据库_过滤规则与匹配隐藏
二是启用连接高级选项中的“仅显示指定数据库”并填写库名列表。就只会列出有权限的库注意:如果账号有 SELECT 权限但没 SHOW DATABASES 权限,Navicat 可能报错或显示空列表——这不是 bug,是权限校验严格的表现。右键连接 → “编辑连接” → 切到“高级”选项卡勾选 仅显示指定数据库,然后在下方输入框填你要保留的库名,用英文逗号分隔,比如:app_dev,app_test保存后重启连接,Navicat 会跳过所有不匹配的库(包括权限内但未列明的)?
2026-04-22 19:54:01
235
原创 C#怎么实现数据校验验证 C#如何用DataAnnotations和FluentValidation校验输入数据【框架】.txt
若需跨会话复用,直接建普通表+加_tmp后缀更稳用主键ID范围分批比时间字段更可靠时间字段常有重复、空值、乱序,导致漏数据或重复处理;按步长切片,比如每批10万:WHERE id BETWEEN 100001 AND 200000避免用id % N == 0取模——数据倾斜时某批可能空跑,某批卡死记得在子查询或临时表里保留原始id,否则JOIN后无法对齐批次临时表建索引比原表JOIN快一个数量级把几千万行筛选结果插入临时表后直接丢着不管,等于把性能问题从“JOIN时计算”转移到“后续查临时表时扫描”。
2026-04-22 19:52:38
248
原创 c++如何快速比对两个文件夹下的同名文件差异_哈希值列表算法【实战】.txt
推荐写法:grid-template-columns: repeat(auto-fit, minmax(300px, 1fr))auto-fit 会合并空轨道,auto-fill 则保留空轨道(影响对齐行为)注意 minmax(300px, 1fr) 中的 300px 是最小宽度,不是断点阈值——实际列数由容器宽度 ÷ 300px 决定如果卡片有固定 aspect-ratio 或字体缩放需求,需额外加 grid-auto-rows: minmax(200px, auto)移动端列数太少、间隙太大?
2026-04-22 19:51:12
239
原创 如何用SQL统计每组的平均值同时显示原行_OVER子句
必须显式写 PARTITION BY,否则默认按整张表计算ORDER BY 在 OVER 里不是必须的,加了会影响窗口范围(比如变成累计平均),不加才对应“整个分组的静态平均”如果分组字段有 NULL,它们会被归为同一组——这是 SQL 标准行为,不是 bug,但容易被忽略SELECT id, dept, salary, AVG(salary) OVER (PARTITION BY dept) AS avg_dept_salaryFROM employees;
2026-04-21 23:09:24
182
原创 MongoDB广告点击追踪如何建模_点击事件聚合与去重记录
应将每次点击作为独立文档存储,精简字段、建合理索引,并用唯一复合索引实现去重,配合覆盖索引优化聚合查询,按需预聚合。MongoDB 单文档上限 64MB,但更现实的瓶颈是:一旦 clicks 数组涨到几千条,$push 写入会变慢,$elemMatch 查询变卡,连 db.collection.stats() 都可能因文档膨胀而失真。先检查索引覆盖和时间范围广告后台最常跑的是“某广告近7天点击量”或“某渠道各广告 CTR”,这类聚合慢,90% 不是管道写得差,而是没让索引扛住过滤和排序。
2026-04-21 23:08:05
226
原创 怎样导出用于负载测试的样本数据_LIMIT限制数据量提取
mysqldump 不支持 LIMIT 是因它仅接受表级导出参数,不解析 SQL 子句;若需随机抽样,得先建带 LIMIT 的视图或临时表导出大表前务必确认目标路径有写权限,且 MySQL 用户有 FILE 权限(对 INTO OUTFILE)用 SELECT ... INTO OUTFILE 快速导出带 LIMIT 的 CSV 样本这是最直接可控的方式,适合负载测试需要的结构化样本,比如导出 5000 行用户数据做压测请求体。
2026-04-21 23:06:47
185
原创 CSS中如何让浮动元素撑开父容器_深度解析清除浮动
浮动元素导致父容器高度塌陷,因其脱离普通文档流,父容器无法感知其高度;只对**触发 BFC 的条件之一**起作用(比如 overflow: hidden),但会意外裁剪 position: absolute 子元素或阴影clear: both 必须加在浮动元素**之后**的兄弟元素上,加在父容器上无效Flex 或 Grid 布局下根本不需要清除浮动——它们天然不依赖文档流高度计算最稳妥的清除方式:伪元素 + clear这是目前兼容性最好、副作用最小的方案,所有现代浏览器和 IE8+ 都支持。
2026-04-21 23:05:21
206
原创 如何防止SQL触发器导致事务超时_拆分逻辑为异步队列处理
key 必须带 session: 前缀并区分环境与服务;实操建议:统一用 session: 前缀,如 session:web:abc123 或 session:api:xyz789多服务共用 Redis 时,前缀要区分环境与服务,例如 session:prod:order:...,避免测试 session 污染生产别用用户 ID 直接当 key(如 session:1001):同一用户多端登录会产生冲突,应使用随机生成的 session IDRedis 连接断了,Session 写入失败会静默丢数据吗?
2026-04-21 23:03:55
241
原创 SQL分组聚合优化_GROUP BY索引与优化方案
合理设计索引可加速GROUP BY:索引应按WHERE列、GROUP BY列、ORDER BY列顺序覆盖,遵循最左前缀原则;避免在分组或条件中对字段使用函数或隐式类型转换。GROUP BY 本身不直接使用索引,但合理设计索引能显著加速分组聚合过程——关键在于让数据库先通过索引快速定位/排序数据,再执行分组,避免全表扫描和临时文件排序。推荐索引:INDEX(status, dept)。这样过滤后数据天然按 dept 有序,分组无需额外排序。
2026-04-20 21:33:48
62
原创 如何处理SQL查询中的逻辑重叠:AND OR嵌套优先级
SQL中AND优先级高于OR,混合使用时必须加括号明确逻辑分组,否则如a=1 OR b=2 AND c=3实际解析为a=1 OR (b=2 AND c=3),易导致漏数据或误过滤。很多人写 WHERE a = 1 OR b = 2 AND c = 3,以为是「(a=1 OR b=2) AND c=3」,实际是「a=1 OR (b=2 AND c=3)」——结果常漏数据或误过滤。写 NOT a = 1 OR b = 2,实际是 (NOT a = 1) OR b = 2,几乎肯定不是你想要的。
2026-04-20 21:32:34
62
原创 如何将 sticky 元素精确定位到父容器的右上角
CSS 中的 position: sticky 是一种混合定位模式——它本质是“相对定位”与“固定定位”的结合体:元素在视口内滚动时,会像 fixed 一样粘附在指定偏移位置(如 top: 0),但其定位参考系仍是其最近的、具有定位上下文(positioned ancestor)的祖先元素。关键点在于:sticky 元素的 left/right/top/bottom 偏移值,只有在父容器建立了定位上下文时,才具备相对于该父容器边缘的参照意义。
2026-04-20 21:31:13
61
原创 怎么通过SSH通道连接SQL Server_跳板机安全配置指南
需正确设置ssh -L本地端口映射、启用目标SQL Server的TCP/IP协议与远程连接、放行防火墙、禁用WinRM冲突服务、使用SQL认证而非Windows认证、配置KeepAlive保活参数,并避免连接字符串中误设Encrypt=yes。SQL Server 连接失败但 SSH 能通,大概率是端口没转发对ssh 隧道连 sql server 不是“连上跳板机就行”,关键在本地端口是否真正映射到目标 sql server 的 1433(或自定义端口)。
2026-04-20 21:29:48
116
原创 MySQL如何备份非常大的数据库_mydumper多线程逻辑导出工具
加 --no-schemas 不能解决这个问题,它只跳过建表语句生成,不解决元数据快照问题真正有效的是 --snapshot-all(需 MySQL 5.6+ 且开启 binlog),它会先获取一个全局一致的 GTID 或 binlog position,再导出,确保所有线程看到同一时刻的表状态若 MySQL 版本旧或未开 binlog,只能靠业务低峰期操作 + --lock-all-tables(会加全局读锁,影响写入)mydumper 导出的文件怎么还原?
2026-04-19 23:24:13
219
原创 解决Navicat正向工程从模型建表报错怎么办_外键关联与语法解析
Navicat正向工程ERROR 1005八成因外键约束底层校验失败,需查errno 150/121、确认被引用字段有完整索引且类型/字符集/NOT NULL严格一致,并勾选“内联生成外键”选项。Navicat 正向工程报错 ERROR 1005: Can't create table 怎么定位这错误八成不是建表语句本身写错了,而是外键约束触发了 mysql 的底层校验失败。navicat 生成的 sql 通常语法合法,但容易忽略存储引擎、字符集、字段类型精度这些隐性前提。
2026-04-19 23:23:03
185
原创 如何解决phpMyAdmin导出空文件的问题_权限检查与表是否损坏排查
导出空SQL文件的主因是mysqldump执行失败却被静默忽略,常见于路径未配置、权限不足、表损坏、max_allowed_packet过小或MySQL权限缺失。导出时生成空 SQL 文件,先查 mysqldump 是否可用phpmyadmin 导出本质是调用系统 mysqldump 命令(如果启用了该功能),不是纯 php 实现。如果导出结果为空但无报错,大概率是 mysqldump 执行失败却被静默吞掉了错误。(仅 MyISAM 支持;立即学习“PHP免费学习笔记(深入)”;
2026-04-19 23:21:52
203
原创 如何利用 Block Tree 避免不必要的子组件重渲染?Vue3 编译黑科技
这导致:父组件响应式数据变化时,整个子树 VNode 都需比对(即使子组件 props 没变) 子组件被包裹在 Proxy 或 Fragment 节点中,无法被编译器识别为“稳定边界”,容易被动刷新 大量冗余 VNode 创建/销毁开销,尤其在列表或嵌套深的模板中明显Block Tree 改变了这一点:编译器会识别出不依赖响应式状态的模板块(如纯 HTML、静态 class/style、无绑定插槽),将它们合并为一个“block”,只在 block 内部存在响应式依赖的位置才插入动态节点。
2026-04-19 23:20:32
252
原创 SQL连接查询中产生笛卡尔积的原因_检查JOIN缺失连接条件
LEFT JOIN 返回远超预期行数的本质是漏写ON子句或ON条件恒真,导致退化为CROSS JOIN;常见错误:写成 LEFT JOIN orders ON true(PostgreSQL)或 LEFT JOIN orders ON 1=1隐性陷阱:右表没有主键/唯一约束,而你误以为某字段能自然去重调试技巧:先去掉 LEFT,用 INNER JOIN 执行,看是否也爆炸——如果是,说明连接条件本身就有问题如何快速定位缺失的 ON 条件别靠肉眼扫 SQL,用执行计划最直接。
2026-04-19 23:19:05
258
原创 c++如何创建一个指定大小的稀疏文件_Windows下FSCTL_SET_SPARSE【实战】
稀疏文件是操作系统标记逻辑存在但物理未分配区域的文件,需调用FSCTL_SET_SPARSE显式启用:文件须以GENERIC_WRITE打开、已存在且非压缩/加密,DeviceIoControl需传有效FILE_SET_SPARSE_BUFFER结构体。什么是稀疏文件,为什么 Windows 下要用 FSCTL_SET_SPARSE稀疏文件不是“空文件”,而是操作系统层面标记出某些区域“逻辑存在但物理未分配”的文件。它节省磁盘空间,适合日志归档、虚拟磁盘镜像、大数据占位等场景。
2026-04-18 23:27:57
219
原创 mysql如何处理连接数过多导致响应慢_mysql连接数调优
MySQL 连接数爆满时,show processlist 看到大量 Sleep 状态连接怎么办这不是“连接数多”本身的问题,而是大量空闲连接没释放,占着线程和内存不干活。否则优先优化连接复用,而非堆参数PHP/Python/Java 应用里,mysql_connect() 和 mysql_pconnect() 别乱用mysql_pconnect()(持久连接)在 PHP 中容易引发连接泄漏,尤其在 FPM 模式下:子进程退出时不销毁连接,连接留在 MySQL 里变成 Sleep,最终堆积满。
2026-04-18 23:26:48
222
原创 如何快速重置SQL表中的自增ID_使用ALTER TABLE重置计数
PostgreSQL须重置序列;如果表刚建好还没插过数据,序列默认从 1 开始,无需重置如果用 INSERT ... VALUES (nextval('t1_id_seq')) 手动取值,重置后下次 nextval() 就是 1用 serial 或 bigserial 创建字段时,序列名固定为 表名_字段名_seq,大小写敏感SQL Server 的 DBCC CHECKIDENT 是唯一正解SQL Server 不支持 ALTER TABLE ... AUTO_INCREMENT,也不管序列对象;
2026-04-18 23:25:23
268
原创 mysql flush privileges有什么作用_mysql权限生效机制解析
它不是“刷新用户”,也不是“重启权限系统”,而是**强制从磁盘重新加载 mysql.user、mysql.db 等权限表到内存缓存中**。GRANT、REVOKE、CREATE USER、DROP USER —— 自动同步磁盘+内存,不需要 FLUSH PRIVILEGES修改完 mysql.user 后忘记 FLUSH —— 新权限对新连接也不生效用 mysqldump 导入权限表或脚本批量更新系统表 —— 必须跟一句 FLUSH PRIVILEGES为什么执行了还是没生效?
2026-04-18 23:24:01
298
原创 Go语言怎么做链路追踪_Go语言分布式链路追踪教程【精选】.txt
调用 stat() 或 lstat() 填充 struct stat 后,st_ino 成员即为 inode 号;stat("path/to/file", &sb):跟随符号链接,取目标 inodelstat("path/to/link", &sb):不跟随,取链接文件自身的 inode路径必须是绝对路径或相对于当前工作目录的有效路径;它不依赖路径字符串,绕过路径解析、权限检查、竞态窗口——哪怕文件被 rename 或 unlink,只要 fd 没关,fstat() 仍能读到原始 inode 信息。
2026-04-17 23:04:47
274
原创 Symfony7新特性全解析:性能提升40%!
若想让程序只看到物理卡1且把它当作device 0,用CUDA_VISIBLE_DEVICES=1是对的;但对Python进程内的torch.cuda.device_count()有决定性影响与os.environ['CUDA_VISIBLE_DEVICES']设置顺序有关:必须在import torch前设置,否则被忽略跨框架混用GPU:PyTorch和TensorFlow共存时显存打架怎么办两个框架各自初始化独立CUDA上下文,默认都会抢占所有可见GPU的全部显存(即使只用其中一张)。
2026-04-17 23:03:52
263
原创 SQL在分组聚合时如何减少内存消耗_优化GROUP BY查询计划
别盲目调大 work_mem —— 它是每个查询操作符独占的,高并发下反而引发 OOMGROUP BY 列含大量高基数字段(如 user_id、request_id)时,哈希表膨胀极快字符串分组比数字分组更耗内存,因为哈希计算和比较开销大,且字符串本身存储也占空间用 GROUP BY 前加 ORDER BY 强制走 SortAggregate当分组键天然有序,或能通过索引快速排序时,SortAggregate 更省内存:它流式处理,只需缓存当前分组的聚合状态,不建全量哈希表。
2026-04-17 23:02:58
305
原创 如何大幅提升 Google Sheets 数据库更新脚本的执行效率
= ui.Button.OK) { Logger.log('用户取消更新');关键优化点解析: setValues() 替代 appendRow():从 O(n) 次 API 调用降至 O(1),实测 200 行数据写入耗时从 12+ 秒降至 <0.8 秒;
2026-04-17 23:02:04
253
原创 SQL报表容灾与备份设计_灾备恢复策略
需分层备份元数据库、中间表/快照、调度脚本及前端报表文件,并通过协同恢复与轻量级方案实现低成本高可用。这意味着需区分对待:数据库(含报表元数据、缓存表、快照)、调度服务(如SQL Server Agent、Airflow、Quartz)、前端展示层(如Power BI Report Server、自研Web平台)三者灾备等级不同。分层备份策略:什么该备、怎么备、多久备按数据价值与变更频率分级处理:报表元数据库(必全量+日志备份):含用户权限、报表定义、参数模板、执行日志表。
2026-04-16 19:41:13
78
原创 Redis怎样优化客户端拉取拓扑的频率_在客户端层面捕获MOVED异常时才触发全局路由表刷新
很多客户端(如旧版 redis-py-cluster)会在首次连接时调用 CLUSTER SLOTS,但这会引入两个硬伤:新节点刚加入但尚未完成槽迁移时,CLUSTER SLOTS 返回的仍是旧映射,客户端缓存后反而更难收敛客户端若维护多个连接池,每个连接都做一次全量拉取,对集群管理节点(通常是 master)造成瞬时压力,尤其在服务启动洪峰期真正可靠的起点,是让第一次 GET 或 SET 命中 MOVED 后,再针对性地向报错节点发 CLUSTER SLOTS ——此时返回结果必然反映最新分配状态。
2026-04-16 19:40:17
221
原创 html标签怎样组织文档大纲_outline工具检查方法【说明】
常见错误现象:document-outline 工具报“大纲断裂”“跳级(如 <h1> 后直接 <h3>)”“无主标题(缺失 <h1>)”。必须保证标题层级连续:从 <h1> 开始,下一级只能是 <h2>,不能跳到 <h3>同一层级多个 <h2> 是合法的,表示并列章节<h1> 应该全页唯一,且出现在主要内容区域(避开页眉/侧边栏的装饰性标题)用 axe-core 或浏览器扩展检查大纲是否符合预期手动数 <h1>–<h6> 容易漏,得靠工具验证实际被解析出的结构。
2026-04-16 19:38:25
258
原创 如何在phpMyAdmin中生成XML格式导出_与其他企业系统的数据交互
危险写法:SELECT id, CONCAT(first_name, last_name) FROM users(第二个字段无名)导出前在phpMyAdmin里先执行SQL,确认“查询结果”表格顶部显示的是你想要的列名Export method选Custom而非QuickQuick模式下phpMyAdmin会跳过所有导出选项,直接用默认模板生成XML——它不包含<database>和<table>包裹节点,也不支持编码设置,企业系统常因缺少根节点或字符集声明而拒绝导入。
2026-04-16 19:37:28
226
原创 宝塔面板如何配置多版本PHP共存_针对不同站点指定环境
宝塔面板支持多PHP版本共存,需手动添加并确保系统架构与源匹配;安装后按站点绑定版本,扩展须对应版本单独安装,注意服务状态、配置重载及路径隔离。宝塔面板怎么装多个PHP版本宝塔默认只装一个PHP版本,要共存必须手动添加——不是点“安装”就完事,得先确认系统架构和源是否匹配。容易踩的坑:502 Bad Gateway不是PHP没装好,而是站点配置里选了PHP版本,但该版本的php-fpm进程根本没跑。比如你装了8.1,但/etc/init.d/php-fpm-81没启动,或者端口被占(默认9000冲突)。
2026-04-15 21:08:13
296
原创 c++如何判断两个文件路径是否物理指向同一个磁盘文件_equivalent【详解】
别把它当布尔判空工具用。相对路径在不同工作目录下行为不可靠若一个路径是符号链接、另一个是目标文件,equivalent() 仍返回 true(它比对的是 inode/FILE_ID,不是路径字符串)为什么 std::filesystem::equivalent() 有时返回 false 却实际是同一文件典型原因是权限或挂载点隔离:比如跨 bind mount、overlayfs、Wine 的 DOS 设备映射,或 NFS 挂载未开启 noac 缓存一致性。立即学习“C++免费学习笔记(深入)”;
2026-04-15 21:07:26
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅