Recursion 递归 探索MySQL 递归查询,优雅的给树结构分页
递归查询是处理层级数据的技术,MySQL 8.0及以上版本通过`WITH RECURSIVE`语句实现。它包括初始查询和递归查询两部分,逐层检索数据直到满足终止条件,适用于树状结构、组织架构等场景,但需注意性能优化。
标签:MySQL
Recursion 递归 递归查询是处理层级数据的技术,MySQL 8.0及以上版本通过`WITH RECURSIVE`语句实现。它包括初始查询和递归查询两部分,逐层检索数据直到满足终止条件,适用于树状结构、组织架构等场景,但需注意性能优化。
Cache 缓存 Spring Cache是一个基于AOP的缓存框架,通过注解简化缓存操作,底层可集成Redis。它减少了代码复杂度和耦合,让开发者更关注业务逻辑,但对写模式和高一致性数据支持有限,需额外处理。
Sync 同步 Maxwell是一个Java守护进程,可实时读取MySQL binlog并将数据以JSON格式发送到Kafka、RabbitMQ等消息队列,支持全量同步和自动恢复,适用于数据同步、缓存更新等场景。
Sharding 分表 文章介绍了为硬件设备开发系统时,面对账单数据量大的挑战。采用单体架构和数据库单库,通过按月水平分表方案,自动创建月份表并动态路由数据,实现高效存储和查询。方案支持流水号和范围查询,并可扩展以适应更大数据量。
规范}(规范076I.png)
Latest 最新 本文介绍在MySQL中查询每个分组最新一条数据的正确方法。直接使用GROUP BY和ORDER BY可能无效,因为GROUP BY先执行。解决方案包括:在子查询中使用ORDER BY id DESC LIMIT确保排序,或使用MAX(id)子查询连接原表。关键点是子查询中ORDER BY需要LIMIT来防止优化忽略。
Canal 同步 面对业务扩张下的数据同步难题,Canal作为阿里开源中间件,通过解析MySQL的binlog日志实现增量数据同步,对业务无侵入。它支持将数据变更实时推送至消息队列(如RabbitMQ),客户端监听处理即可完成同步,有效解决分库分表等复杂场景的数据一致性问题。
Backup 备份 文章针对服务器因MySQL、Redis、Docker弱密码被黑导致数据库被删的问题,提出了通过生成SSH密钥、配置Gitee私有仓库、编写备份脚本并设置定时任务,实现数据库自动备份到Gitee的解决方案,以确保数据安全。
Backup 备份 本文介绍了MySQL数据库定时备份的几种方法,主要使用mysqldump命令进行备份和还原,并通过编写BASH脚本配合crontab实现自动化定时备份,以保护数据安全。