SQL
SQL 学习笔记SQL 是用于定义、查询和操作关系型数据的声明式语言。编写 SQL 时,应先明确目标结果集,再考虑连接、过滤、聚合和执行计划。不同数据库在函数、过程语法和事务行为上存在差异,本文以通用 SQL 为主,并在流程控制部分说明 MySQL 风格语法。 SQL 语句分类 DDL:定义数据库对象,例如 CREATE、ALTER 和 DROP。 DML:写入或修改数据,例如 INSERT、UPDATE 和 DELETE。 DQL:查询数据,主要指 SELECT。 DCL:控制权限,例如 GRANT 和 REVOKE。 TCL:控制事务,例如 COMMIT 和 ROLLBACK。 12345678flowchart LR A[业务问题] --> B[确定目标列] B --> C[确定数据来源与连接] C --> D[使用 WHERE 过滤行] D --> E[分组与聚合] E --> F[使用 HAVING 过滤分组] F --> G[排序与限制结果] G --> H[检查执行计划] 基础查...
Polymarket-learning
Polymarket 学习笔记Polymarket 是链上预测市场的代表性应用。用户交易某个事件结果对应的份额,市场价格可被理解为参与者对结果概率的聚合判断,但它并不是客观概率,也不构成确定性预测。 市场如何运作一个二元市场通常包含 Yes 与 No 两种结果份额。事件结算后,正确结果的每份份额可兑付一个计价单位,错误结果的份额归零。交易阶段的价格由买卖订单决定。 1234567flowchart LR A[用户存入抵押资产] --> B[拆分为 Yes 与 No 份额] B --> C[订单簿撮合与转让] C --> D[事件发生] D --> E[结果提议与争议处理] E --> F[最终结果写入] F --> G[正确份额兑付] 若 Yes 份额价格为 0.64,通常可将其解释为市场隐含概率约为百分之六十四。该解释未考虑手续费、流动性、价差、资金占用和参与者偏差,因此不能把价格直接等同于真实概率。 完整份额与套利约束在理想条件下,一组 Yes 与 No 份额最终总能兑付一个计价单位,因此两者价格之和应...
刷题记录
刷题记录本笔记按题意抽象、核心思路、代码实现、复杂度和易错点记录题目。代码默认使用 Java,所有结论均以给定约束为前提。 12345678flowchart TD A[读取题目] --> B[提取约束和目标] B --> C[手工推演样例] C --> D[选择数据结构] D --> E[证明核心步骤] E --> F[实现代码] F --> G[检查空值 边界 溢出] G --> H[分析复杂度] 求出胜利玩家的数目题意共有 n 名玩家,pick[i] 表示某名玩家获得某种颜色的球。若玩家编号为 i,只要其任意一种颜色的球数量严格大于 i,该玩家就是胜利玩家。颜色编号范围为 0 到 10。 思路使用二维数组记录每名玩家拥有的各色球数量。统计完成后,逐个玩家检查是否存在数量大于玩家编号的颜色。每名玩家最多计数一次。 12345678910111213141516171819class Solution { public int winningPlayerCount(int n,...
算法
Java 算法与常用类库笔记算法题的核心是把问题转换为明确的数据模型,选择匹配的数据结构,并通过复杂度分析判断方案能否在约束内运行。Java 代码还要注意输入解析、数值范围、比较器约定和可变对象的使用方式。 解题流程123456789flowchart TD A[阅读题目与约束] --> B[定义输入输出和边界] B --> C[构造最小示例] C --> D[设计朴素解法] D --> E[分析时间与空间复杂度] E --> F[选择数据结构或优化方法] F --> G[编码] G --> H[使用边界用例验证] H --> I[复盘不变量与可复用模板] 复杂度双重遍历通常为 O(n^2),在数据量较大时需要考虑哈希表、排序、双指针或前缀结构。复杂度估算应包含最坏情况,并同时考虑额外空间。 规模 常见可接受复杂度 n <= 20 指数搜索或状态压缩 n <= 10^3 O(n^2) n <= 10^5 O(n log n) 或 O(n) n...
项目笔记
O2O 项目笔记该项目采用 Spring Cloud 微服务与 OpenResty 动静分离架构。OpenResty 直接提供静态页面,将动态接口请求转发到 Gateway,再由网关路由到后端服务。项目启动、配置和故障排查应围绕请求链路进行。 系统架构12345678910111213141516flowchart LR U[浏览器] --> O[OpenResty] O -->|静态资源| W[Web 目录] O -->|动态请求| G[Gateway] G --> A[Account] G --> N[Notice] G --> R[Order] G --> P[Payment] G --> S[Storage] G --> T[Stroke] A --> D[(数据库与基础设施)] N --> D R --> D P --> D S --> D T --> D 模块职责 模块 类型 主要职责...
OSS学习记录(Agent项目中)
下面是整理后的学习笔记(已去掉第十和第十三部分,并将关键数据结构改为表格形式)。 阿里云 OSS 与 Agent 联动学习笔记一、OSS 是什么Alibaba Cloud OSS(Object Storage Service)是一个云端对象存储服务。 它用于存放图片、视频、文档、日志、模型输出等文件。 在系统架构中: 数据库:存业务数据 OSS:存文件本体 Agent:处理逻辑 + 调用 OSS 二、OSS 核心概念 概念 含义 示例 Bucket 存储空间(类似顶级目录) product-images Object 实际文件 main.jpg Object Key 文件路径 products/10001/main.jpg Endpoint 访问域名 oss-cn-hangzhou.aliyuncs.com AccessKey 访问凭证 AK / SK 补充说明: Bucket 必须全局唯一 Object Key 本质是字符串路径(没有真实文件夹) Endpoint 必须与地域一致 三、Agent 为什么需...
快速上手一个项目
新项目快速上手指南 一、先跑起来(不要一上来就读代码)目标确认系统是“活的”,避免在错误环境中分析代码。 操作步骤 阅读 README.md 或启动文档 安装依赖(如 npm install / mvn install / bun install) 启动服务(如 npm run dev / java -jar / docker-compose up) 访问接口或前端页面 你必须确认 服务是否成功启动(无致命报错) 服务端口(如 8080 / 3000) 是否有异常日志 数据库是否连接成功(连接池 / ORM 日志) 常见问题 端口被占用 环境变量未配置(如 .env) 数据库未启动 / 账号密码错误 依赖未安装完整 👉 结论:系统跑不起来,一切分析没有意义 二、搞清项目结构(10分钟扫一遍)目标快速定位代码职责分层,避免“迷路式阅读代码”。 核心目录说明12345controller / api 👉 接口入口(处理请求)service 👉 核心业务逻辑reposi...
部署脚本编写相关
部署验证流程跑通验证的 6 个步骤12345678910111. 本地执行部署脚本 ↓2. 代码上传到生产服务器 (47.242.65.47) ↓3. Docker 容器启动 ↓4. Nginx 配置生效 ↓5. 访问 http://www.chronode.net/ 能正常打开 ↓6. 确认功能 OK 核心思想:别纸上谈兵,先实际部署一次看看 执行步骤Step 1:本地准备12345678910# 1. clone 项目git clone https://github.com/xiaoxijin/gf_v3cd gf_v3# 2. 安装依赖bun install# 3. 检查部署脚本ls -la deploy.shcat deploy.sh # 确认配置(服务器 IP、端口等) Step 2:执行部署123# 运行部署脚本(需要设置密码环境变量)export SERVER_PASSWORD="你的服务器密码"bash deploy.sh Step 3:验证结果12345678910111213# 1. SSH 连上服务器ssh r...
服务器与部署相关
可以,而且这套东西你一旦理顺,后面做项目就不会一直“哪里都懂一点,但一上手就慌”。 你现在遇到的,本质上是 开发环境、测试环境、生产环境 三套东西混在一起了。先给你一句最核心的话: 写代码可以在服务器上,但“调试前端、联调接口、连数据库、发版部署”通常都要区分清楚你现在到底在操作哪一个环境。 我用最接地气的方式带你搭框架。 一、你现在到底在做什么你现在说的场景,一般是这样的: 代码放在服务器上你通过 VSCode Remote SSH、终端、跳板机之类连到服务器开发。 前端想在本机浏览器看效果因为浏览器在你电脑上,不在远程服务器上,所以你需要: 要么把前端项目在本机跑起来 要么把服务器上的前端端口转发到本机 后端和数据库可能在不同地方常见组合有: 前端在本机,后端在测试服务器,数据库也在测试服务器 前后端都在服务器,数据库单独一台 前端本机,后端本机,数据库 Docker / 本机 / 远程库 部署到测试环境不是“写完代码自动就有了”,而是把你改的代码发到测试环境机器上,再启动服务。 上线把测试通过的版本发布到生产环境。 二、你先建立这 4 个...
并发编程与数据隔离
并发编程与数据隔离核心问题并发场景下的典型数据问题: 问题 描述 例子 竞态条件 多个线程同时读写同一数据,结果依赖执行顺序 两个请求同时修改用户余额 脏读 读到未提交的事务数据 A 修改未提交,B 读到了 丢失更新 后提交的覆盖先提交的 两人同时编辑同一文档 幻读 同一查询在不同时间返回不同行数 统计用户数时有人新注册 数据库层面解决方案事务隔离级别: 隔离级别 脏读 丢失更新 幻读 默认数据库 Read Uncommitted ❌ ❌ ❌ - Read Committed ✅ ❌ ❌ Oracle, PostgreSQL Repeatable Read ✅ ✅ ❌ MySQL Serializable ✅ ✅ ✅ - 乐观锁 vs 悲观锁: 12345678-- 悲观锁(先锁再改)SELECT * FROM users WHERE id = 1 FOR UPDATE;UPDATE users SET balance = balance - 100 WHERE id = 1;-- 乐观锁(先改再检查版本号)UPDATE u...








