- 博客(13)
- 收藏
- 关注
原创 MyBatis 设计观——映射思想、动态 SQL 的边界与可维护性考量
MyBatis 的扩展机制允许开发者定制框架行为。插件})@Override// 实现拦截逻辑类型处理器@Override@OverrideMyBatis 的设计观体现了工程领域的平衡智慧。它在控制与便利、灵活与稳定、简单与功能之间找到了恰当的平衡点。这种平衡不是妥协,而是对现实开发需求的深刻理解。精准的定位是 MyBatis 成功的关键。它不试图解决所有持久层问题,而是专注于为需要 SQL 控制权的场景提供最佳解决方案。适度的抽象。
2025-12-01 18:16:13
389
原创 连接池的价值与风险——池化提升与资源枯竭的双刃剑,关键指标如何解读
连接池是现代应用架构中的关键组件,正确使用可以提升性能几个数量级,配置不当则会导致系统脆弱不堪。成功的连接池管理需要深入理解业务特征、持续监控关键指标以及建立完善的故障处理机制。连接池优化不是一次性的任务,而是需要随着业务发展不断调整的持续过程。通过科学的容量规划、细致的监控预警和快速的故障响应,可以最大化连接池的价值,避免资源枯竭风险。📚 下篇预告🗺️ ORM 映射哲学:MyBatis 如何平衡数据库操作与面向对象思维的鸿沟🔄 动态 SQL 边界。
2025-11-30 12:50:49
470
原创 撮合系统是什么?把“买卖双方配对成成交“的那台发动机到底做了什么
写这篇文章的出发点很简单:把"撮合系统(Matching Engine)"这件事讲清楚,让不熟交易所内部的人也能读得懂。我做过撮合相关的开发和优化,下面用工程视角把它的职责、核心规则、常见实现思路和工程难点讲明白,尽量用生活化的例子和实际场景来说明,方便直接拿去公众号发布。撮合系统就是把市场上买单和卖单按照规则配对并产生成交记录的核心引擎。它决定了谁以什么价、什么量成交,并维护着持续变化的订单簿(Order Book)。撮合系统看起来是"撮合买卖",但工程实现里涉及到并发、延迟、持久化、风控和大量测试。
2025-11-29 21:56:40
402
原创 SQL 性能的三要素——索引、执行计划与数据分布的协同影响
SQL 性能优化是一个系统工程,需要同时考虑索引设计、执行计划选择和数据分布特征三个要素的协同影响。优秀的性能源于对这三者之间复杂关系的深入理解和平衡把握。索引是基础,但必须基于实际查询模式和数据分布特征设计;执行计划是关键,优化器的选择决定了查询路径的效率;数据分布是依据,统计信息的准确性直接影响优化器决策的质量。未来,随着机器学习技术在数据库领域的应用,如 Bao 优化器通过强化学习选择执行计划,我们有理由相信数据库性能优化将更加智能化。
2025-11-29 21:16:42
766
原创 事务与锁:一致性的操作系统——隔离级别、MVCC与常见冲突的诊断思路
事务与锁机制是数据库系统的核心组成部分,理解其原理与实现对于构建高并发、高可用的应用系统至关重要。在实际开发中,需要根据业务特点选择合适的事务隔离级别,合理设计数据访问模式,并建立完善的监控体系。MVCC通过多版本控制实现了读写非阻塞,大幅提升了读并发性能。不同隔离级别在数据一致性与并发性能之间提供梯度选择。合理的索引设计、短小的事务以及正确的锁使用方式是避免锁冲突的关键。数据库并发控制是一门平衡艺术,需要在数据一致性与系统性能之间找到最佳平衡点。
2025-11-28 15:28:11
239
原创 关系建模的底层逻辑——范式与反范式的收益成本对照,主键与外键的实践取舍
关系数据库设计是需要平衡多种因素的工程决策过程。范式化确保数据一致性,反范式化优化查询性能,二者并非对立而是互补的设计理念。主键选择关系数据标识和访问效率,外键设计影响数据完整性和系统性能。明智的数据库设计应基于具体业务需求、访问模式和一致性要求,而非僵化遵循教条。良好的数据模型会随着业务发展而演进,需定期评估和调整。在规范化和反规范化间找到适合当前业务的最优平衡点,是数据库设计师的核心价值所在。核心决策要点:优先满足第三范式确保数据一致性,针对性反范式化优化性能瓶颈;
2025-11-28 12:04:23
413
原创 《项目实战》从Spring开始说起
引导从今天开始,我们正式进入项目实战系列,我们会从项目架构的搭建,以及如何解决三高问题(高并发、高可用、高性能),源码会同步进行更新,欢迎大家持续关注https://gitee.com/liupan1230/spring-series.git正文随着软件的安装与了解,从这一节我们开始进入项目实战实战项目是基于spring进行开发,我们今天先来讲讲先从spring家族...
2019-12-16 14:08:31
504
原创 《软件安装》java 安装与环境配置
上期问题回顾mysql是关系型数据库,那么相应的还有非关系型数据库,那么,关系型数据库和非关系型数据库有什么区别呢?关系型数据库与非关系型数据库,我们首先了解这个关系指的是什么上图可以通过一个老师找到他的学生,也可以通过学生找到老师,他们之间就建立了关系,非关系型数据库,字面上的意思就是之间没有关系,都是互相独立的个体。接下来说说两者的区别与优劣势1. 性能...
2019-12-07 19:33:50
221
原创 《软件安装》centos 安装 mysql
上期问题回顾全球 IPv4 地址正式耗尽,IPv4地址大约42.9亿,按照理论来说,每一个联网的设备都需要IP地址,而现在全球联网设备远远不止42.9亿,那么,这么多设备是怎么处理联网的问题呢?先说说IPv4的格式0~255.0~255.0~255.0~255 ,由四个数字组成,每个数字的范围为0~255,所以,IPv4一共有256*256*256*256,这么多个,换成2进制,...
2019-12-04 22:28:50
197
原创 《软件安装》VMware 安装 centos8
上期问题回顾搞技术的同学应该都听过docker,那么请问docker和虚拟机有什么区别呢?传统的虚拟机架构是:物理机 -> 宿主机操作系统 -> Hypervisor支持 -> 虚拟机操作系统 -> 应用程序docker架构是:物理机 -> 宿主机操作系统 -> docker引擎 -> 应用程序虚拟机从本质上来说还是一个...
2019-12-02 14:42:31
198
原创 《软件安装》VMware Workstation 不注册 下载
这是本号第一篇文章,先说说此号的作用一:作为个人的一些平常有关技术的记录,不然每次要用的时候,还得去慢慢找二:出一些干货的合集,帮助一些小伙伴不用每次需要的时候就去网上到处搜索,查找,关注本公众号,可以拿来就用问答环节问:为什么要下载安装VMware Workstation答:VMware Workstation 可以安装虚拟机,我们可以把我们安装的一些软件装在虚拟机上面...
2019-11-30 23:22:35
1780
3
原创 关于ajax post请求,参数过大产生的问题解决 Java
之前做了一个图片上传的功能,前端是把图片编码成BASE64,但是图片一大了,后台用request.getParameter("前端参数");来接收参数打印不出来,没有值,这就很尴尬了然后一直觉得是前端POST没传过来,左思右想都觉得不应该,POST没有大小限制啊,后来用debug查看,发现后台数据时传输过来了原来request.getParameter("前端参数");
2016-11-14 11:28:08
7641
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅