与“应用层”相关的TAG标签
库存超卖本质是并发事务读取旧值后扣减,解法包括:①SELECT...FORUPDATE加行锁(需id为主键/唯一索引);②UPDATE...WHERE原子更新(WHERE含stock>=1);③Redis+Lua预减库存(注意最终一致性与降级)。
一个能跑起来的评论系统,comments表至少需5个核心字段:id、post_id、content、created_at、status;其中id用BIGINTUNSIGNEDAUTO_INCREMENT,post_id和user_id须加索引,content用TEXT,支持二级回复需parent_i...
应使用全局唯一递增ID实现游标分页替代OFFSET:SELECTFROMorder_001WHEREid>12345ORDERBYidLIMIT20;id需全局唯一有序(如雪花ID),禁用单独create_time;管理后台等特殊场景可多分片并行查+应用层归并,但须熔断;COUNT()应避免,...
SQLCPU飙高的头号原因是查询未走索引导致全表扫描,其次为短连接频繁编译执行计划、统计信息过期、隐式类型转换;需通过执行计划分析、合理建索引、复用连接、更新统计信息及校验参数类型综合优化。
应优先在主表使用created_at和updated_at作为时间锚点,而非直接建历史表;需数据库层面自动维护时间戳,禁用应用层写入;关键状态变更须配history表记录完整快照;时间区间查询宜用valid_from/valid_to模式;is_deleted不可替代追溯能力。
SQL无内置数据版本号机制,需通过ROWVERSION类型或整型version字段配合应用逻辑实现行级版本控制,用于乐观并发与变更追踪。
MySQL备份加密需用管道方式结合gpg或openssl,避免明文落地;恢复时应直接流式解密导入,禁用临时文件;应用层已加密字段无需双重加密,重点防范操作细节失误。
千万级表直接DELETE易致日志暴涨、锁表、主从延迟甚至OOM;应分批删除(主键范围切片+显式COMMIT+限流)或重建表(导出保留数据+原子替换)。
SQL层面的“热点数据”缓存是指在数据库访问链路中对高频查询结果集的复用,而非SQL本身提供缓存;MySQL通过BufferPool预热、PG通过pg_prewarm、应用层用Redis配合防穿透策略实现。
是,触发器会同步阻塞式拖慢DML操作,因其属于事务一部分,耗时操作会导致原语句卡住;定位需用performance_schema、调试表和禁用对比;应避免冗余赋值、批量插入、非确定函数及自表DML;轻量原则下超3行SQL即应重构,优先用CHECK约束、应用层埋点、外键级联或生成列替代。
