- 博客(58)
- 收藏
- 关注
原创 MySQL迁移过程中数据校验失败处理_基于Hash值对比差异
建议统一写成IFNULL(CAST(col AS CHAR), 'NULL')时间字段务必转为统一时区+格式,例如DATE_FORMAT(CONVERT_TZ(col, '+00:00', '+08:00'), '%Y-%m-%d %H:%i:%s')分块校验时ORDER BY必须严格一致,否则Hash必然不同没加ORDER BY的GROUP_CONCAT行为不可靠——InnoDB存储顺序不等于查询返回顺序,尤其跨版本或引擎(如MyISAM→InnoDB)时,同一数据集两次查询可能拼出不同字符串。
2026-05-07 22:05:55
117
原创 JavaScript中箭头函数在对象字面量方法中的潜在错误
对象方法中禁用箭头函数,因其无独立this,会继承外层作用域的this,导致绑定失效;箭头函数在对象字面量中直接作为方法定义时,this 不会按预期绑定到当前对象,而是继承外层作用域的 this,这极易引发隐性错误。对象方法中误用箭头函数导致 this 指向丢失普通函数作为对象方法时,调用时会自动将 this 绑定到该对象;而箭头函数没有自己的 this,它沿作用域链向上查找,通常指向全局对象(非严格模式)或 undefined(严格模式)。
2026-05-07 22:04:10
48
原创 如何用 CSS 动画与 animationend 事件实现循环渐进式圆点动画
/ 可选:响应窗口大小变化(如旋转设备) window.addEventListener('resize', () => { // 重置所有圆点位置/尺寸需重新触发,此处仅做示意 document.querySelectorAll('.circle').forEach(c => c.classList.remove('anim'));
2026-05-07 22:00:43
185
原创 HTML函数能否用无线鼠标精准操作_外设延迟对编码影响【操作】
蓝牙鼠标的延迟更不稳定,空闲时可能升至 100ms+macOS 的 hid.trackpad.scaling 或 Windows 的“指针精度”(Enhance pointer precision)会插值平滑移动,反而让小范围精确定位更难VS Code 的 editor.cursorSmoothCaretAnimation 开启后,光标动画会掩盖真实点击位置,加剧误判感怎么测出你当前鼠标的实际操作延迟别信厂商标称的“1ms 响应”,要测从物理点击到屏幕像素变化的真实链路。
2026-05-07 21:58:56
208
原创 Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
用 net/http 启服务就足够,别一上来搞 Gin/echoGo 写 TODO 应用,最常踩的坑是过早引入 Web 框架。你只是想存几条待办、查一下、删一条——net/http 加 encoding/json 完全够用,启动快、依赖少、调试直观。但默认开启的 WAL(Write-Ahead Logging)模式在 Go 的 database/sql 连接池下容易卡住:多个 goroutine 同时写,sqlite3 报 database is locked,不是代码问题,是模式不匹配。
2026-05-06 20:34:45
215
原创 MySQL批量更新数据如何防止死锁_按主键顺序排序更新记录
需在应用层先SELECT ... ORDER BY id获取有序ID,再按序执行UPDATE或确保IN子句顺序,注意事务一致性、索引使用及UUID主键的物理分散问题。如果多个事务以不同顺序更新同一组主键,就容易形成“A锁了1、等2,B锁了2、等1”的循环等待——这就是死锁。按主键升序更新,相当于让所有事务“排队走同一条路”,大幅降低交叉加锁概率。注意:这里说的“主键顺序”特指聚簇索引物理顺序,对复合主键或非自增主键也适用,但前提是排序依据是主键字段本身,不是业务字段(比如created_at)。
2026-05-06 20:33:00
149
原创 CSS如何设置段落间距_利用margin-bottom控制元素间距
列表项里的 p(如 li > p)会叠加父级 ul/ol 的默认 margin,造成双倍空隙文章末尾的 p 仍保留 margin-bottom,导致页面底部多出无意义空白响应式切换时,固定像素值(如 24px)在小屏下显得过大,而未配合 margin-top 清除上一个元素的 bottom margin,可能造成“间距翻倍”更稳妥的段落间距方案:使用相邻兄弟选择器与其给每个 p 都设 margin-bottom,不如只给「后面还有段落」的 p 加间距,末尾自然收住。
2026-05-06 20:31:16
225
原创 mysql大数据集删除缓慢如何优化_使用分批删除避免锁表
现象:执行 DELETE FROM t WHERE status = 0 卡住,SHOW PROCESSLIST 显示 Updating 状态持续数分钟本质不是“慢”,是“锁冲突+日志膨胀”双重阻塞哪怕加了 status 索引,如果匹配行太多,MySQL 仍可能放弃索引走全表扫描(看 EXPLAIN 的 rows 和 type)用 LIMIT 分批删但没加 ORDER BY 会漏删分批删不是加个 LIMIT 就完事。
2026-05-01 20:46:44
164
原创 c++怎么获取文件的压缩比例信息_Windows压缩卷特性【详解】
Windows 压缩卷上的文件没有“压缩比例”这个属性Windows 的 NTFS 压缩(Compact OS / compact.exe)是透明的、按簇粒度进行的块级压缩,系统不记录也不暴露单个文件的压缩前/后大小比。能拿到的只有压缩前后大小的近似估算NTFS 压缩不保证每个文件都可逆地压缩出精确比例——有些文件(如已压缩的 .zip、.jpg)可能膨胀,有些则被合并进共享簇。}容易踩的坑:NTFS 压缩 ≠ ZIP,别拿 ZIP 思维套用NTFS 压缩是透明的、无元数据的、不跨文件共享字典的。
2026-05-01 20:45:10
149
原创 JavaScript中Number-EPSILON在数值比较中的应用
它不是通用误差容限,需配合Math.abs(a-b)和量级基准(如Math.max(Math.abs(a),Math.abs(b)))使用。它不是“任意小数的通用误差容限”,而是用于浮点数**安全比较**的基准单位,尤其适用于判断两个数是否“在浮点精度范围内相等”。为什么需要 Number.EPSILON?直接用 === 比较结果可能为 false,即使数学上应相等。Number.EPSILON 提供了一个与数值尺度匹配的、合理的精度阈值参考——但它本身**不随操作数大小自动缩放**,需配合绝对差值使用。
2026-05-01 20:43:37
26
原创 如何精准控制绝对定位元素的垂直位置(避免蓝条错位)
在 Web 布局中,当使用 position: absolute 定位一个元素时,其最终位置完全取决于最近的已定位祖先元素(即 position 值为 relative、absolute、fixed 或 sticky 的父容器),并由 top、right、bottom、left 四个偏移属性之一或多个共同决定。原代码中同时保留 float: left(对绝对定位无效,应移除)和 bottom: 15px,不仅冗余,更因缺乏明确的纵向锚点(如 top),使渲染行为依赖于不可控的祖先结构,造成视觉错位。
2026-05-01 20:41:53
32
原创 如何在 Go 中基于接口样例动态创建对象实例
本文讲解如何利用 go 的反射机制,根据一个实现了特定接口(如 encoding.binaryunmarshaler)的样例对象,动态创建同类型的新实例,适用于数据库批量反序列化等泛型场景。本文讲解如何利用 go 的反射机制,根据一个实现了特定接口(如 encoding.binaryunmarshaler)的样例对象,动态创建同类型的新实例,适用于数据库批量反序列化等泛型场景。reflect.New(typ) 则为该类型分配内存并返回指向新零值实例的 reflect.Value;
2026-05-01 20:40:08
28
原创 mysql如何查看服务器支持的存储引擎_使用SHOW ENGINES命令
如果用的是云数据库(如阿里云 RDS、腾讯云 CDB),注意部分低配版本会禁用非 InnoDB 引擎,SHOW ENGINES 虽能执行,但除 InnoDB 外全显示为 NO。为什么 Support 列有 YES/NO/DEFAULT/DISABLED 四种值这反映的是当前实例对某引擎的**运行时可用性**,不是“装没装”。DISABLED 最容易被忽略——它代表引擎代码存在,但被 skip_<engine_name></engine_name> 类参数关闭(比如配置文件写了 skip_myisam)。
2026-04-29 23:37:11
221
原创 Go 语言中 go install 命令的正确用法与常见误区详解
正确使用 go install 的前提条件标准项目结构你的代码必须位于 $GOPATH/src/<import-path>/ 下,例如:$HOME/go/src/hello/ # ← import path: "hello"└── main.go注意:hello/ 是包名(同时也是导入路径),不是随意的文件夹名。")}$GOPATH/bin 目录存在且在 PATH 中(推荐)你当前的 ~/.profile 中已包含 /home/shivams/go/bin,这很好。
2026-04-29 23:35:42
136
原创 c++怎么在Linux下利用sendfile系统调用提升大文件网络传输速率【底层】
Linux 下 sendfile 的基本用法和参数陷阱sendfile 系统调用原型是:ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count)。关键点不在函数本身,而在参数怎么设:out_fd 必须是已连接的 socket(SOCK_STREAM),且不能是监听 socket(listen_fd)in_fd 必须通过 open(..., O_RDONLY) 打开,不能是 stdin 或管道;
2026-04-29 23:34:15
164
原创 如何使用Navicat进行同步前执行预处理脚本_保持环境数据一致性
它不是 ETL 工具,不提供前置/后置执行点。真正需要的是“先改再同步”,不是“边同步边忽略”如果频繁需要这类流程,说明环境管理有缺陷:应统一用迁移脚本(如 Flyway/Liquibase)替代人工同步Navicat 16+ 版本仍无此功能,别在设置里反复找“before sync script”选项用命令行 + Navicat 导出的 SQL 实现半自动预处理如果你要批量同步多个库,或者希望把预处理固化下来,可以绕开 GUI,用 Navicat 导出的 SQL 文件 + 命令行工具组合实现。
2026-04-29 23:32:34
213
原创 如何修改Oracle服务器默认的日期格式_NLS_DATE_FORMAT全局配置
NLS_DATE_FORMAT是会话级参数,修改spfile仅对新连接生效,已有会话不受影响;改 NLS_DATE_FORMAT 会影响所有新连接,但不改已有会话oracle 的 nls_date_format 是会话级参数,修改数据库初始化参数(如 spfile 或 pfile)只对后续新建的连接生效。,改完必须重启实例才生效ALTER SESSION SET NLS_DATE_FORMAT 只作用于当前会话开发或脚本调试时常用这个命令临时调整,但它不会写入任何配置文件,断开重连就失效。
2026-04-29 23:30:57
276
原创 golang如何减少内存分配次数_golang减少内存分配技巧实战
但滥用会更耗内存甚至 panic。而 make([]int, 0, 10) 底层只预分配 cap=10 的数组,len=0,append 直接复用,避免中间态浪费。") + 1 估算行数再预分配,比边读边 append 快 2–3 倍过度预分配风险明显:cap=1MB 却只用 1KB,剩下 999KB 长期占着不释放,反而拖慢 GC 扫描怎么让变量真正在栈上,而不是“以为在栈上”Go 编译器自动做逃逸分析,但“取地址”“传 interface{}”“闭包捕获”“返回指针”都会强制堆分配。
2026-04-28 22:20:25
219
原创 如何处理Java应用重启导致的Oracle死锁_应用异常中断未释放锁与PMON清理延迟
Java应用重启时Oracle锁没及时释放,怎么办java应用异常终止(比如kill -9、容器oom杀掉)后,事务未正常提交或回滚,连接断开但oracle端的行锁/表锁仍残留,而pmon进程默认最多120秒才清理死连接——这期间新请求可能直接卡在enq: tx - row lock contention上。核心不是“等PMON”,而是让锁在连接断开那一刻就失效。不能指望注解自动兜底。其实它只显示DML导致的**行级锁对象**,而死锁常发生在TX锁(事务锁)层面,得看V$LOCK和V$SESSION关联。
2026-04-28 22:18:50
177
原创 如何对SQL查询结果求和_利用SUM函数进行分组计算
需用COALESCE(SUM(col),0)转0;实际场景中,比如统计某类订单总金额:SELECT SUM(amount) FROM orders WHERE status = 'cancelled',若当天没有取消订单,结果就是 NULL,而非 0 —— 这会直接影响后续应用层判断。比如想看每个用户下的订单总金额和最新下单时间:SELECT user_id, SUM(amount), MAX(created_at) FROM orders GROUP BY user_id 是合法的;
2026-04-28 22:17:16
227
原创 c++怎么忽略CSV文件中的首行表头_ignore(streamsize, ‘-n’)【实战】
最简且可靠跳过CSV首行表头的写法是input.ignore(std::numeric_limits<std::streamsize>::max(), ''),需#include <limits>,并预先检查流状态与文件内容结构。input.good()) { /* 处理错误 */ }更稳妥:先 if (input.peek() == std::istream::traits_type::eof()) 判断是否空文件ignore() 返回引用,不返回跳过了多少字符,所以无法靠返回值判断是否真跳到了换行符;
2026-04-27 21:29:17
134
原创 Python中如何实现NumPy数组的分块_使用array_split函数切割数据
永远先判断 len(chunks) > n 再取 chunks[n]更稳妥的做法是用 chunks[n] if n < len(chunks) else None,避免中断流程如果只是遍历所有块,直接用 for chunk in chunks:,不依赖索引axis 参数填错导致形状诡异误传 axis=2 到二维数组上,会触发 numpy.AxisError: axis 2 is out of bounds for array of dimension 2;
2026-04-27 21:26:44
155
原创 Golang如何创建和删除目录_Golang目录操作教程【完整】
典型使用场景:保存日志到 ./logs/2024/06/15 这种嵌套路径,直接用 os.MkdirAll 更稳妥。os.Mkdir("a/b/c", 0755) → 失败(除非 a/b 已存在)os.MkdirAll("a/b/c", 0755) → 成功(自动建 a 和 a/b)权限参数是 Unix 风格 mode,Windows 上仅部分生效(忽略执行位)删除空目录用 os.Remove,删非空目录得用 os.RemoveAllos.Remove 只能删空目录或文件;
2026-04-27 21:25:16
202
原创 mysql大表数据清理的利器_使用表分区按天删除数据
而 DELETE 生成大量 undo/redo、锁表久、易致缓冲池雪崩。正确做法是:ALTER TABLE logs PARTITION BY RANGE COLUMNS(dt) ( PARTITION p20230101 VALUES LESS THAN ('2023-01-02'), PARTITION p20230102 VALUES LESS THAN ('2023-01-03'), PARTITION p20230103 VALUES LESS THAN ('2023-01-04'));
2026-04-27 21:23:47
207
原创 golang如何实现错误预算Error Budget计算_golang错误预算Error Budget计算实现实战
直接用 float64 做减法(比如 1.0 - sliValue)看似简单,但会因浮点精度、时间窗口对齐、计数器重置逻辑等问题,在长期运行中累积偏差,尤其当 SLI 是基于计数器(如 Prometheus 的 counter)时更明显。实操建议:立即学习“go语言免费学习笔记(深入)”;分母用 rate(http_requests_total[30d]) 不可靠——rate() 会自动对齐时间窗口,但 30d 可能跨 Prometheus 存储断点,导致结果跳变;
2026-04-24 23:31:06
216
原创 c++怎么利用std--variant处理多种二进制子协议包的自动分支解析【进阶】
必须先确认当前持有什么类型。buffer 生命周期必须长于 variant 实例std::visit 处理多态行为时,lambda 捕获和重载决议容易出什么问题写 std::visit([&](auto&& x) { ... }, v) 看似简洁,但一旦子类型间有隐式转换(比如 int32_t 和 uint32_t 都能转 int64_t),编译器可能无法唯一确定调用哪个重载,报 error: ambiguous template instantiation。
2026-04-22 19:52:56
159
原创 MySQL触发器在主从架构下的表现_MySQL触发器主从同步策略
触发器在从库默认不执行,主从复制仅同步binlog事件而非触发器逻辑,从库需手动创建且受read_only和DEFINER权限限制;触发器在从库上默认不执行MySQL主从复制只同步 binlog 事件,不复制触发器本身,更不会在从库自动触发。常见错误现象:SHOW TRIGGERS 在从库能看到触发器定义,但业务侧发现从库缺少预期的衍生数据(比如统计表没更新、审计日志缺失),误以为是同步延迟或触发器失效。使用场景:你想靠从库同步出一份带审计字段的副表,指望触发器自动补全——这条路走不通。
2026-04-22 19:51:33
163
原创 测试库与生产库怎么仅同步新增增量数据_无损发布与更新方案
pg_dump + --inserts + ON CONFLICT DO NOTHING 可安全实现增量同步:先用 --inserts 导出新增数据,再用 sed 替换为 INSERT ... ON CONFLICT DO NOTHING,依赖唯一约束跳过重复,避免误更新或主键冲突。如何用 pg_dump + --inserts + --on-conflict-do-nothing 实现 PostgreSQL 增量同步增量同步不是靠“全量比对”,而是靠业务主键或时间戳字段识别新增。INSERT ...;
2026-04-21 23:05:41
218
原创 如何检查SQL注入漏洞覆盖率_使用漏洞管理平台监控
用漏洞管理平台扫SQL注入,为什么总漏报?实操建议:先人工确认目标是否在平台资产范围内——检查target_url是否含URL编码、是否被robots.txt屏蔽、是否配置了scan_scope白名单对登录后功能模块,必须配置平台的authentication插件(如Cookie注入、表单登录录制),否则90%以上的注入点根本不会被访问到禁用平台默认的“快速扫描”模式,改用deep crawl + SQL injection test专项策略,否则它可能跳过POST /api/v2/order?
2026-04-21 23:04:14
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅