设计表时,如何选择正确的数据类型
前言
假设现在有一个需求,需要创建一张orders表来存储客户的订单信息。假设表结构如下:
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY, -- 订单ID,主键,自增
customer_id INT NOT ...[2024/3/11]
仅需10秒!ChatGPT轻松画出UML用例图,我却苦战10分钟。
当我们写技术文档时,一张系统用例图,平时要花费10分钟才完成,而ChatGPT绘图过程只用了10秒钟,基本可以达到同样的水平,通过ChatGPT可以显著提高画流程图的效率。
什么是用例图
用例图是统一建模语言(UML)的一部分,用于描述系统的功能以及与之交互的外部实体(如人、系统或设备)。
...[2024/3/11]
Landsat 7的热红外波段有2个该如何选择?
本文介绍Landsat 7遥感影像数据中B61、B62两个热红外波段的区别,以及研究应用时二者选择的依据。
Landsat 7遥感影像数据具有2个热红外波段,分别是Band 61与Band 62这两个波段;有些地方也将这两个波段写作Band 6L与Band 6H、Band 6a与Band 6b...[2024/3/11]
蓬莱enclave TEE编译和运行说明
蓬莱enclave-spmp 编译和运行说明
蓬莱是一个RISC-V TEE系统,其设计具有安全性,高性能和可扩展性。基于PMP的OpenSBI版本的蓬莱Enclave使用可以参考下文,具体仓库地址为:https: github.com/Penglai-Enclave/Penglai-Encla...[2024/3/11]
记一次群聊消息查询优化的实践
导航
引言
tablestore简介
火线告警:500错误频发
真相大白:单表数据超2亿,tablestore连接超时
紧急发版:快速关闭查询功能
数据清理:仅保留半年内的数据
收紧入口:只同步一条到tablestore
双保险:增加功能开关
结语
本文首发《记一次群聊消息查询优化的实践》...[2024/3/11]
分布式事务解决方案详解
1: 分布式事务简介
大多数场景下,我们的应用都只需要操作单一的数据库,这种情况下的事务称之为本地事务(LocalTransaction)。本地事务的ACID特性是数据库直接提供支持。本地事务应用架构如下所示:
但是在微服务架构中,完成某一个业务功能可能需要横跨多个服务,操作多个数据库。这...[2024/3/7]
新零售SaaS架构:订单履约系统架构设计(万字图文总结)
什么是订单履约系统?
订单履约系统用来管理从接收客户订单到将商品送达客户手中的全过程。
它连接了上游交易(客户在销售平台下单环)和下游仓储配送(如库存管理、物流配送),确保信息流顺畅、操作协同,提升整个供应链的效率和响应速度。
系统定位
订单履约系统的目标是让订单处理更快、更清晰,提高客...[2024/3/7]
数据库系列:大厂使用数据库中间件解决什么问题? - Hello-Brand
相关文章
数据库系列:MySQL慢查询分析和性能优化
数据库系列:MySQL索引优化总结(综合版)
数据库系列:高并发下的数据字段变更
数据库系列:覆盖索引和规避回表
数据库系列:数据库高可用及无损扩容
数据库系列:使用高区分度索引列提升性能
数据库系列:前缀索引和索引长度的取舍 ...[2024/3/7]
【专业技能】程序员的软件工程素养之画好 UML 时序图
目录前言一、认识时序图1.1时序图元素1.2怎么使用二、画好时序图2.1一般步骤2.2举个例子2.3推荐工具三、其它作用四、文章小结
前言
笔者在本科的时候上过软件工程的专业课,也完成过类似的课堂作业,但是工作以后一直没怎么用上。碰巧前段时间有碰到一个复杂系统的部分功能设计,作为设计文档的一...[2024/3/7]
探索Terraform实践:优化基础设施管理
Terraform 是管理基础设施及代码(IaC)最常用的工具之一,它能使我们安全且可预测地对基础设施应用更改。
Terraform作为一个强大的基础设施即代码工具,为开发人员和运维团队提供了一种简单而强大的方式来定义、部署和管理基础设施。在本文中,我们将揭示Terraform...[2024/3/4]
10个技巧,3分钟教会你高效寻找开源项目
大家好,我是知微!
作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?
常用的开源网站有:github 和 gitee
github是全球最大的开源社区,今天就以github为例,演示一下
github界面
一般来说,优秀的项...[2024/3/4]
【学习性能分析--第二版】如何做好性能测试分析诊断调优-暨《软件性能测试、分析与调优实践之路》(第2版)推荐
【推荐序】
1999年,Windows 98只有1800万行代码,运行环境只需要16MB内存、225MB硬盘。而目前最新的Windows 10有6000万行代码,需要8GB内存、20GB硬盘才能流畅地运行。 1990年,低速的CAN总线才125kb ,高速的500kb 吞吐的CAN总线就能满足...[2024/3/4]
重读经典《操作系统:设计与实现》
距离第一次阅读《操作系统:设计与实现》,已经是 20 多年了。当时,差不多是 2002 年吧,我已经参加工作了。我大学不是学计算机的,因而也没有上过操作系统的课。第一次去上海,在上海图书馆看到这本书(中文版),就买了回来,读了很多遍。现在,书好像找不到了,只记得是两本,一本是理论,一本是源代码。...[2024/3/4]
你所不知道的端口耗尽(三)
问题背景
在你所不知道的端口耗尽前面的两篇章节中,介绍了经典的客户端端口耗尽和SNAT端口耗尽问题,但是对于解决方案只是一笔带过,这篇文章会更详细的介绍解决方案。解决方案主要分为两大类,优化部署和优化应用程序。
优化部署
本篇主要介绍在Azure上的部署以及主要是Azure集群的部署,针对的是...[2024/3/4]
任务系统之API子任务 - ops-coffee
日常运维工作中有许多的任务要执行,例如项目发布/数据备份/定时巡检/证书更新/漏洞修复等等,大部分的任务都会有多个步骤共同完成,例如一个发布任务会有拉代码、编译、分发、通知等等步骤,而不同的任务可能还包含相同或相似的步骤,例如对于相同语言相同架构的不同项目来说,他们的发布任务步骤可能是相同的,仅...[2024/3/1]
【八股总结】至今为止遇到的八股(下半)
这是总结的下半部分,上半在这:https: www.cnblogs.com/DAYceng/p/18037696
可以见到,下半出现了一些Java相关的东西,懂的都懂,唉
Java基础
Java静态类型有哪些
在Java中,静态类型(Static Type)是指在编译时就确定了变量的类型,并...[2024/3/1]
可用于智能客服的完全开源免费商用的知识库项目
介绍
FastWiki项目是一个高性能、基于最新技术栈的知识库系统,专为大规模信息检索和智能搜索设计。利用微软Semantic Kernel进行深度学习和自然语言处理,结合.NET 8和MasaBlazor前端框架,后台采用.NET 8+MasaFramework+SemanticKernel,...[2024/3/1]
【Azure APIM】验证APIM删除后的恢复步骤
问题描述
在Azure门户中,误删除API Management资源后,怎么办?
问题解答
遇见误删除的第一反应就是:
想恢复删除的内容,但是从门户上查看没有发现有可以操作的方面。 (错误,Azure APIM门户已经支持“一键恢复”功能:Recover deleted ...[2024/3/1]
【八股总结】至今为止遇到的八股(上半)
本文内容均来自于我的个人总结以及开源社区,感谢互联网。
生产日期:2023.12.11
资本家传递寒冬,我传递温暖,祝大家新一年事事顺利
计算机网络原理
七层网络模型
从下到上:
物理层-数据链路层-网络层-传输层-会话层-表示层-应用层
TCP/IP网络模型
其实就是简化的七层模型
...[2024/2/28]
短链接的背后故事:为互联网用户带来的便捷与安全
一、短链接的起源
短链接是一种将长URL转换为短、简洁的网址的技术。它的起源可以追溯到互联网发展的早期,当时长URL的使用给用户带来了繁琐和不便。为了解决这个问题,短链接技术应运而生。
短链接 | 一个覆盖广泛主题工具的高效在线平台(amd794.com)
https: amd79...[2024/2/26]
【学习笔记】 - 基础数据结构 :Link-Cut Tree
发现树剖代码太长了,给我恶心坏了
学个代码短点的能写树剖题的数据结构吧
前置知识
平衡树splay
树链剖分
简介以及优缺点介绍
Link-Cut Tree,也就是LCT,一般用于解决动态树问题
Link-Cut Tree可用于实现重链剖分的绝大多数问题,复杂度为\(O(n...[2024/2/26]
OpenResty中如何实现,按QPS、时间范围、来源IP进行限流
OpenResty是一个基于Nginx与Lua的高性能Web平台,它通过LuaJIT在Nginx中运行高效的Lua脚本和模块,可以用来处理复杂的网络请求,并且支持各种流量控制和限制的功能。
近期研究在OpenResty中如何实现,按QPS、时间范围、来源IP进行限流,以及动态更新限流策略。今天...[2024/2/26]
美团面试:说说OOM三大场景和解决方案? (绝对史上最全) - 江-小北
首先,咱们先聊聊,什么是OOM?
小伙伴们,有没有遇到过程序突然崩溃,然后抛出一个OutOfMemoryError的异常?这就是我们俗称的OOM,也就是内存溢出。简单来说,就是你的Java应用想要的内存超过了JVM愿意给的极限,就会抛出这个错误。
那么为什么会出现OOM呢?一般都是由这些问题引...[2024/2/26]
都说了能不动就别动,非要去调整,出生产事故了吧 → 补充
开心一刻
今天去超市买饮料
老板说 5 元,我听成了“会员”
我说没有
老板跟我对视了 10 秒
然后,老板说:没有你买啥?
我说:没有就不让买?
当时的老板:
瑕疵回顾
都说了能不动就别动,非要去调整,出生产事故了吧 中有...[2024/2/26]
新零售SaaS架构:订单履约系统的应用架构
订单履约系统的核心能力
通过分析订单履约的全流程和各个业务活动,我们可以梳理出订单履约的核心业务链路,基于业务链路,我们抽象出订单履约系统的三大系统能力,分别为履约服务表达、履约调度、物流配送。
履约服务表达:负责向客户明确和准确地传达履约服务,包括提供订单的预计处理时间、...[2024/2/26]
分库分表如何管理不同实例中几万张分片表?
大家好,我是小富~
ShardingSphere实现分库分表,如何管理分布在不同数据库实例中的成千上万张分片表?
上边的问题是之前有个小伙伴看了我的分库分表的文章,私下咨询我的,看到他的提问我第一感觉就是这老铁没用过ShardingSphere,因为这个问题在ShardingSphere中已...[2024/2/26]
云计算 - 以阿里云为例,企业上云策略全览与最佳实践
云采用框架(Cloud Adoption Framework,简称CAF)为企业上云提供策略和技术的指导原则和最佳实践,帮助企业上好云、用好云、管好云,并成功实现业务目标。本云采用框架是基于服务大量企业客户的经验总结,将企业云采用分为四个阶段,并详细探讨企业应在每个阶段采取的业务和技术策略;同...[2024/2/26]
新零售SaaS架构:什么是订单履约系统?
什么是订单履约系统?
订单履约系统用来管理从接到销售订单,到把货品送到客户手中的整个业务过程。它是上游交易(如销售和客户下单环节)和下游仓储配送(如库存管理、物流)之间的桥梁,确保信息流的顺畅和操作的协同,提升整个供应链的效率和响应速度。
订单履约的主要流程包括接收订单、占用库存、拣货、打包、...[2024/2/23]
深入剖析如何设计订单超时自动取消的功能深入剖析如何设计订单超时自动取消的功能
我们在美团 APP 下单,假如没有立即支付,进入订单详情会显示倒计时,如果超过支付时间,订单就会被自动取消。
这篇文章,笔者想以架构师的视角,深入剖析如何设计订单超时自动取消的功能。
1 定时任务
首先,我们非常自然的想到定时任务的方案。
方案流程:
每隔 30 秒查询数据库,取出最近的...[2024/2/23]
Delphi 实现刘谦春晚魔术
看了博友的C# 实现刘谦春晚魔术很好,改成了delphi版的。
1 program Project1;
2
3 {$APPTYPE CONSOLE}
4 {$R *.res}
5
6 uses
7 System.SysUtils,
8 ...[2024/2/23]
缓存一梭子, 程序员的快乐就是如此简单缓存一梭子, 程序员的快乐就是如此简单
缓存也是一把梭项目的标配,从业多年,有事无事set/getCache来一梭子。
夜深人静的时候,头脑里冷不丁会出现一些问题,我竟一时无法自圆其说。
已经有cpu多级缓存、操作系统page cache,那为什么还需要定义应用缓存?
应用的多个副本缓存了同一份数据库数据, 怎么保证这些多副本的缓...[2024/2/23]
《优化接口设计的思路》系列:第八篇—分页接口的设计和优化
一、前言
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系...[2024/2/23]
关于代码性能优化的总结
今天同事发开中遇到了一个代码性能优化的问题,原本需求是:从一个数据库中查询某个表数据,存放到datatable中,然后遍历datatable,看这些数据在另一个数据库的表中是否存在,存在的话就要更新,不存在就要插入。
就这个需求本身来说很简单,但是随着数据量的增大,之前通过循环遍历的方...[2024/2/21]
一个单例模式,没必要这么卷吧
分享是最有效的学习方式。
博客:https: blog.ktdaddy.com/
老猫的设计模式专栏已经偷偷发车了。不甘愿做crud boy?看了好几遍的设计模式还记不住?那就不要刻意记了,跟上老猫的步伐,在一个个有趣的职场故事中领悟设计模式的精髓。还等什么?赶紧上车吧
如果把系统软件...[2024/2/21]
面试官:如何实现多级缓存?
对于高并发系统来说,有三个重要的机制来保障其高效运行,它们分别是:缓存、限流和熔断。而缓存是排在最前面也是高并发系统之所以高效运行的关键手段,那么问题来了:缓存只使用 Redis 就够了吗?
1.冗余设计理念
当然不是,不要把所有鸡蛋放到一个篮子里,成熟的系统在关键功能实现时一定会考虑冗余...[2024/2/21]
CORS就是跨域吗?
首先,跨域的域是什么?
跨域的英文是:Cro -Origin。
Origin 中文含义为:起源,源头,出生地。
在跨域中,"域"指的是一个 Web 资源(比如网页、脚本、图片等)的源头。
包括该资源的协议、主机名、端口号。
在同源策略中,如果两个资源的域相同,则它们属于同一域,...[2024/2/21]
软件架构模式之第七章:基于空间的架构
第七章:基于空间的架构
大多数基于web的业务应用程序遵循相同的通用请求流程:首先,web服务器接收来自web浏览器的请求;然后,应用服务器处理该请求;最后,数据库服务器提供所需数据。尽管这种类型的请求流对于少数用户非常有效,但随着用户负载增加,瓶颈开始出现。首当其冲的是web...[2024/2/21]
[技术选型与调研] 流程引擎/工作流引擎:Activiti、Flowable、Camunda
1 概述:流程与流程引擎
低代码平台、办公自动化(OA)、BPM平台、工作流系统均需要流程引擎功能
【工作流引擎的三大功能】
1)验证当前过程状态:在给定当前状态的情况下,检查是否有效执行任务。
2)确定用户权限:检查是否允许当前用户执行任务。
3)执行条件脚本:经过前两个步...[2024/2/21]
【开工大吉】推荐4款开源、美观的WPF UI组件库
前言
经常有小伙伴在技术群里提问:WPF有什么好用的UI组件库?,今天大姚给大家推荐4款开源、美观的WPF UI组件库。
WPF介绍
WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创...[2024/2/19]
遍历用for还是foreach?
遍历用for还是foreach?这篇文章帮你轻松选择!
在编程的世界里,我们经常需要对数据进行循环处理,常用的两种方法就是:for循环和foreach循环。想象你站在一条装满宝贝的传送带前,你要亲手检查每一件宝贝。使用for循环就像是你亲手控制传送带的速度和方向,而使用foreach循环则是...[2024/2/19]
浅谈集合幂级数
叠甲:读者很菜。
集合幂级数是一个很厉害的东西。
我们对于是有限集的全集 \(\mathbb{U}={1,2,\dots n}\),我们利用占位符 \(x^S\) 来表示一个序列 \(f\),其中对于 \(S\subseteq \mathbb{U}\) 的值为 \(f_S\)。
一般记为 ...[2024/2/19]
从零开始的 dbt 入门教程 (dbt core 开发进阶篇)
引
在上一篇文章中,我们花了专门的篇幅介绍了 dbt 更多实用的命令,那么我们继续按照之前的约定来聊 dbt 中你可能会遇到的疑惑以及有用的概念,如果你是 dbt 初学者,我相信如下知识点一定会对你有极大的帮助:
了解 dbt_project 配置文件,以及不同字符的作用
了解 dbt 工程...[2024/2/19]
分布式事务详解
概述
随着互联网的发展,软件系统由原来的单体应用转变为分布式应用。分布式系统把一个单体应用拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统下不同服务之间通过远程协作完成的事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是...[2024/2/18]
架构设计:千万级流量下的数据强依赖降级 - Hello-Brand架构设计:千万级流量下的数据强依赖降级 - Hello-Brand
1 背景
互联网场景下,我们经常会面临一个产品流量从初创时期的小流量到全盛大流量的过程。
这时候,原本的架构设计就显得很不合理,变成你追求服务稳定性阻碍。
然而这一切并不一定是你的架构能力的问题,而是在小流量场景下,不能过高的去评估容量和架构冗余性,避免造成不必要的资源和维护人力的浪费。
...[2024/2/18]
软件架构模式之第三章:分层架构软件架构模式之第三章:分层架构
第三章:分层架构
传统的IT团队结构按照技术领域进行组织,例如演示团队、后端开发团队和数据库团队等。由于大多数架构师、设计师和开发人员对这种结构非常熟悉,分层架构成为大多数商业应用程序开发项目的自然选择。然而,就像所有架构风格一样,它具有优点和缺点,并不适用于所有系统。
&...[2024/2/18]
想设计一个高并发的消息中间件前,先熟悉一下这些知识点
本文分享自华为云社区《面试必问 | 如何设计一款高并发的消息中间件?》,作者:冰 河。
消息中间件涉及的知识点
要想设计一个具有高并发的消息中间件,那么首先就要了解下消息中间件涉及哪些具体的知识点。通常,设计一个良好的消息中间件最少需要满足如下条件:
生产者、消费者模型。
支持分布式架构。
...[2024/2/18]
【译】如何使库与本机 AOT 兼容(二)
原文 | Eric Erhardt
翻译 | 郑子铭
开放式遥测
OpenTelemetry 是一个可观察性框架,允许开发人员从外部了解他们的系统。它在云应用程序中很流行,并且是云原生计算基金会的一部分。 .NET OpenTelemetry 库必须修复一些地方才能与 AOT 兼容。 ope...[2024/2/18]
Socket.D 开源输传协议的集群转发特性
1、简介
Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议。底层可以依赖 TCP、UDP、KCP、WebSocket 等传输层协议。其开发背后的动机是用开销更少的协议取代超文本传输协议(HTTP),HTTP 协议对于许多任务(如微服务通信)来说效率低下。
2、Socket.D...[2024/2/18]
基于Doris构建亿级数据实时数据分析系统基于Doris构建亿级数据实时数据分析系统
转载至我的博客 https: www.infrastack.cn ,公众号:架构成长指南
背景
随着公司业务快速发展,对业务数据进行增长分析的需求越来越迫切,与此同时我们的业务数据量也在快速激增、每天的数据新增量大概在30w 左右,一年就会产生1 个亿的数据,显然基于传统MySQL数据库已...[2024/2/18]
并发编程防御装-锁(基础版)
并发编程防御装-锁(基础版)
大家好,我是小高先生。在Java并发编程的世界中,锁的地位至关重要。它就像是一道坚固的防线,确保了并发编程运行结果的正确性。你可以不准备攻击装备,但是锁这个防御装备是必不可少的。相信大家在之前都对锁或多或少有些了解,本文将带领大家学习锁的基础知识。
乐观锁和悲观锁...[2024/2/18]