- 单例模式是一种常见的设计模式,在《Java与模式》一书中,阎宏博士对单例模式做了全面的总结。 JavaSingleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。 单例模式也是一种比较常见的设计模式,它到底能带给我们什... 单例模式是一种常见的设计模式,在《Java与模式》一书中,阎宏博士对单例模式做了全面的总结。 JavaSingleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。 单例模式也是一种比较常见的设计模式,它到底能带给我们什...
- 1 什么是事务 一种可靠、一致的方式,访问和操作数据库中数据的程序单元。 2 ACID性质 并非任意的对数据库的操作序列都是数据库事务。数据库事务拥有以下四个特性,习惯上被称之为ACID特性。 原子性(Atomicity) 一次事务包含在其中的对数据库的操作中的操作要么全部成功,要么全部失败。 一致性(Consistency) 跨表、跨行、跨事务,数据库始... 1 什么是事务 一种可靠、一致的方式,访问和操作数据库中数据的程序单元。 2 ACID性质 并非任意的对数据库的操作序列都是数据库事务。数据库事务拥有以下四个特性,习惯上被称之为ACID特性。 原子性(Atomicity) 一次事务包含在其中的对数据库的操作中的操作要么全部成功,要么全部失败。 一致性(Consistency) 跨表、跨行、跨事务,数据库始...
- 1 SQL 的哲学 形如 Linux 哲学一切都是文件,在 SQL 领域也有这样一条至理名言 一切都是关系 2 关系数据库 所谓关系数据库(Relational database)是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 现实世界中的各种实体以及实体之间的各种联系均用关系模型表示。现如今虽然对此模型有一些批评意见,但... 1 SQL 的哲学 形如 Linux 哲学一切都是文件,在 SQL 领域也有这样一条至理名言 一切都是关系 2 关系数据库 所谓关系数据库(Relational database)是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 现实世界中的各种实体以及实体之间的各种联系均用关系模型表示。现如今虽然对此模型有一些批评意见,但...
- 创建索引 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...) 123 其中对应的语法变量信息如下: [UNIQUE|FULLTEXT|SPATIAL] 1 中括号中的这三个关键字表示创建的索引类型,它们分... 创建索引 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...) 123 其中对应的语法变量信息如下: [UNIQUE|FULLTEXT|SPATIAL] 1 中括号中的这三个关键字表示创建的索引类型,它们分...
- 值对象也是领域模型中的领域对象。 应尽量使用值对象建模而非实体。即便一个领域概念必须建模成实体,在设计阶段也应更偏向于将其作为值对象。因为它可以非常容易进行创建、测试、使用、优化和维护。 1 为什么使用值对象? 曾经我们都滥用实体建模。在用户和权限等概念进入协作领域前,实体建模并没有带来什么坏处。在项目启动时,釆用了常用的建模方式:将领域模型中所有属性映射到... 值对象也是领域模型中的领域对象。 应尽量使用值对象建模而非实体。即便一个领域概念必须建模成实体,在设计阶段也应更偏向于将其作为值对象。因为它可以非常容易进行创建、测试、使用、优化和维护。 1 为什么使用值对象? 曾经我们都滥用实体建模。在用户和权限等概念进入协作领域前,实体建模并没有带来什么坏处。在项目启动时,釆用了常用的建模方式:将领域模型中所有属性映射到...
- 1 设置带过期时间的 key # 时间复杂度:O(1),最常用的方式 expire key seconds # 字符串独有的方式 setex(String key, int seconds, String value) 12345 除了string独有设置过期时间方法,其他类型都需要依靠expire方法来设置时间。 如果没有设置时间,那缓存就是永不过期。 如果设置... 1 设置带过期时间的 key # 时间复杂度:O(1),最常用的方式 expire key seconds # 字符串独有的方式 setex(String key, int seconds, String value) 12345 除了string独有设置过期时间方法,其他类型都需要依靠expire方法来设置时间。 如果没有设置时间,那缓存就是永不过期。 如果设置...
- 1 Schema概念 schema在数据库中表示的是数据库对象集合,它包含了各种对像,比如:表,视图,存储过程,索引等等。 一般一个用户对应一个集合,所以为区分不同集合就需给不同集合起名。用户的schema名就相当于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。 例如当我们访问一个数据表时,若该表没有指明属于哪个schema,系统就会... 1 Schema概念 schema在数据库中表示的是数据库对象集合,它包含了各种对像,比如:表,视图,存储过程,索引等等。 一般一个用户对应一个集合,所以为区分不同集合就需给不同集合起名。用户的schema名就相当于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。 例如当我们访问一个数据表时,若该表没有指明属于哪个schema,系统就会...
- 应用场景:数据库升级、覆盖、卸载等原因,造成数据库丢失。 本次恢复是因为版本升级(覆盖安装),造成的数据库丢失;新版本的数据库正常运行,但是里面没有之前的数据库了; 下面就是安装目录 可以看出两个安装目录都存在,打开低版本的目录,data文件夹很舒坦的就在里面。 准备把5.7.24 的迁移到 5.7.31 的 下面就恢复低版本的数据到高版中去: 1、把整个data... 应用场景:数据库升级、覆盖、卸载等原因,造成数据库丢失。 本次恢复是因为版本升级(覆盖安装),造成的数据库丢失;新版本的数据库正常运行,但是里面没有之前的数据库了; 下面就是安装目录 可以看出两个安装目录都存在,打开低版本的目录,data文件夹很舒坦的就在里面。 准备把5.7.24 的迁移到 5.7.31 的 下面就恢复低版本的数据到高版中去: 1、把整个data...
- 连接池配置 连接池提供了许多参数,最重要的就是最大连接数,连接池能使用的连接数达到上限后,新来的请求需要等待其他请求释放连接。 最大连接数不是越大越好: 过大 客户端需耗费过多资源维护连接,且由于服务端对应的是多个客户端,每一个客户端都保持大量连接,会给服务端带来更大压力:不仅是内存压力,若服务端的网络模型是一个TCP连接一个线程,那么几千个连接意味着几千个线程,... 连接池配置 连接池提供了许多参数,最重要的就是最大连接数,连接池能使用的连接数达到上限后,新来的请求需要等待其他请求释放连接。 最大连接数不是越大越好: 过大 客户端需耗费过多资源维护连接,且由于服务端对应的是多个客户端,每一个客户端都保持大量连接,会给服务端带来更大压力:不仅是内存压力,若服务端的网络模型是一个TCP连接一个线程,那么几千个连接意味着几千个线程,...
- 1 秒杀的问题 服务单一、独立部署 秒杀服务即使自己扛不住高并发而宕机,也不要造成服务雪崩。 秒杀链接加密 避免恶意攻击,机器人模拟秒杀请求避免链接暴露,自己工作人员,提前秒杀商品 库存预热、快速扣减 秒杀读多写少。无需每次实时校验库存。库存预热,放到Redis,信号量控制进来秒杀的请求。 动静分离 Nginx做好动静分离。静态资源 Nginx 直接返回... 1 秒杀的问题 服务单一、独立部署 秒杀服务即使自己扛不住高并发而宕机,也不要造成服务雪崩。 秒杀链接加密 避免恶意攻击,机器人模拟秒杀请求避免链接暴露,自己工作人员,提前秒杀商品 库存预热、快速扣减 秒杀读多写少。无需每次实时校验库存。库存预热,放到Redis,信号量控制进来秒杀的请求。 动静分离 Nginx做好动静分离。静态资源 Nginx 直接返回...
- 1 什么是幂等性 用户对于同一操作发起的一次请求或者多次请求的结果是一致的。 比如数据库的乐观锁,在执行更新操作前,先去数据库查询version,然后执行更新语句,以version作为条件,如果执行更新时有其他人先更新了这张表的数据,那么这个条件就不生效了,也就不会执行操作了,通过这种乐观锁的机制来保障幂等性. 2 Con幂等性 2.1 什么是Con幂等性 消... 1 什么是幂等性 用户对于同一操作发起的一次请求或者多次请求的结果是一致的。 比如数据库的乐观锁,在执行更新操作前,先去数据库查询version,然后执行更新语句,以version作为条件,如果执行更新时有其他人先更新了这张表的数据,那么这个条件就不生效了,也就不会执行操作了,通过这种乐观锁的机制来保障幂等性. 2 Con幂等性 2.1 什么是Con幂等性 消...
- 0 MySQL HA/Scalability 如何关上“删库跑路”的后门,维护我们的数据安全呢? 数据是当今Web,移动,社交,企业和云应用程序的流行货币。确保数据始终可用是任何组织的头等大事。几分钟的停机时间可能会导致收入和声誉严重损失。 没有提供高可用性(HA)的“一刀切”的方法。独特的应用程序属性,业务需求,运营能力和传统基础架构都可以影响HA技术的选择。... 0 MySQL HA/Scalability 如何关上“删库跑路”的后门,维护我们的数据安全呢? 数据是当今Web,移动,社交,企业和云应用程序的流行货币。确保数据始终可用是任何组织的头等大事。几分钟的停机时间可能会导致收入和声誉严重损失。 没有提供高可用性(HA)的“一刀切”的方法。独特的应用程序属性,业务需求,运营能力和传统基础架构都可以影响HA技术的选择。...
- 只要使用Redis缓存,就必然存在缓存和DB的数据一致性问题。若数据不一致,那么业务应用从缓存中读取的数据就不是最新数据,这会导致严重的错误。比如把电商商品的库存信息缓存在Redis,若库存信息不对,则业务层下单操作就可能出错,这是不能接受的。 为何缓存和DB数据会不一致 数据一致性是什么意思,“一致性”包含如下情况: 若缓存中有数据,则缓存的数据值需要和DB值相... 只要使用Redis缓存,就必然存在缓存和DB的数据一致性问题。若数据不一致,那么业务应用从缓存中读取的数据就不是最新数据,这会导致严重的错误。比如把电商商品的库存信息缓存在Redis,若库存信息不对,则业务层下单操作就可能出错,这是不能接受的。 为何缓存和DB数据会不一致 数据一致性是什么意思,“一致性”包含如下情况: 若缓存中有数据,则缓存的数据值需要和DB值相...
- 1 需求 添加积分 在用户签到的基础上添加用户积分,签到 1 天送 10 积分,连续签到 2 天送 20 积分,3 天送 30 积分,4 天以上均送 50 积分。积分排行榜 2 表设计 利用MySQL保存积分数据 这类似于一张日志表,因此数据量很大,想要统计用户积分做排行榜时,表数据可能如下: 3 实现TopN积分排行榜 MySQL 方案 统计 SQL ... 1 需求 添加积分 在用户签到的基础上添加用户积分,签到 1 天送 10 积分,连续签到 2 天送 20 积分,3 天送 30 积分,4 天以上均送 50 积分。积分排行榜 2 表设计 利用MySQL保存积分数据 这类似于一张日志表,因此数据量很大,想要统计用户积分做排行榜时,表数据可能如下: 3 实现TopN积分排行榜 MySQL 方案 统计 SQL ...
- SQL 语句主要可以划分为以下 3 个类别。 DDL(Data Definition Languages)语句 数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。 DML(Data Manipulation Language)语句 数据操纵语句,用于添加、删除、更新和查... SQL 语句主要可以划分为以下 3 个类别。 DDL(Data Definition Languages)语句 数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。 DML(Data Manipulation Language)语句 数据操纵语句,用于添加、删除、更新和查...
上滑加载中
推荐直播
-
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中
热门标签