昔年浅巷

昔年浅巷

数据库

Spring事务简单回顾

事务具备原子性、一致性、隔离性、持久性(ACID)特性,其中AID是保障一致性的手段。MySQL的InnoDB引擎通过回滚日志实现事务恢复机制,确保异常时数据回滚。Spring支持编程式与注解式事务管理,编程式通过TransactionTemplate或PlatformTransactionManager实现灵活控制,适用于复杂场景;注解式通过@Transactional简化代码,但粒度较粗。Spring事务核心包括PlatformTransactionManager、TransactionDefinition、TransactionStatus三个接口,分别负责事务管理、属性定义与状态追踪。@Transactional可配置传播行为、隔离级别等参数,适应不同事务需求。
11
0
0
2024-10-19

Redis之Lua脚本

Lua脚本语法包含注释、变量、数据类型、控制结构、函数及表等核心元素,支持原子性操作与错误处理。在Redis中,Lua脚本通过减少网络通信开销、确保操作原子性,成为处理复杂逻辑的高效工具,适用于缓存更新、分布式锁、数据批处理等场景。其优势包括避免竞态条件、事务整合能力及原生支持,但需结合参数验证、权限控制与沙盒模式保障安全性。通过封装多命令逻辑,Lua在Redis中实现如可重入锁、原子计数器等功能,提升系统性能与可维护性。
14
0
0
2024-10-19

数据库大表查询优化经验

公司需处理数十亿级大表关联查询以满足业务需求,但面临索引限制、跨库重复、表基数过大等问题,导致查询效率低下。现有方案采用大数据平台整合数据,通过清洗、去重并异步同步至新表以实现高效处理;同时优化拆分SQL逻辑,剔除非必要查询条件,将部分计算转移至业务层,并强制使用满足条件的组合索引以提高查询性能。此外,还可考虑索引固化、分库分表等方案进一步优化数据库效率。
13
0
0
2024-10-19