数据库
文章平均质量分 92
三金C_C
我一路向北,离开有bug的季节…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql错误码 2013 解决方案
摘要:针对脚本运行时频繁连接/关闭MySQL导致"Lost connection"错误(2013),本文提出一种轻量级连接管理方案。通过全局单例DBManager类维护数据库连接,实现连接复用和空闲超时释放机制。方案包含:1)线程安全的连接获取接口;2)30秒空闲自动释放;3)强制释放接口;4)避免频繁建立连接的成本。该方案有效解决了因短时高频连接、查询超时或网络波动导致的连接中断问题,特别适合长时间运行的数据库操作脚本。原创 2025-06-06 14:37:06 · 1423 阅读 · 0 评论 -
乐观锁与悲观锁
悲观锁与乐观锁对比总结 悲观锁: 核心思想:假设并发冲突高,读写前加锁(如SELECT FOR UPDATE),确保独占操作。 适用场景:强一致性需求(如库存扣减、金融交易),写冲突概率高。 缺点:性能开销大,易引发死锁。 乐观锁: 核心思想:假设并发冲突低,通过版本号/时间戳检测冲突,提交时校验(如UPDATE ... WHERE version=3)。 适用场景:读多写少(如配置管理、内容编辑),允许重试或失败。 缺点:需业务层处理冲突,高频写场景性能差。 选择建议: 悲观锁:确保数据绝对安全,接受性能原创 2025-05-25 15:56:14 · 804 阅读 · 0 评论 -
Mysql 中的锁
数据库锁机制简析 数据库通过锁机制保障并发访问时数据的一致性,主要分为物理层锁(表锁、行锁)和逻辑层锁(乐观锁、悲观锁)。InnoDB引擎默认采用行锁,仅锁定操作行,性能更优;而MyISAM使用表锁,粒度大但冲突率高。DDL操作(如ALTER TABLE)会加表锁,阻塞所有读写,需谨慎执行。UPDATE语句默认加行锁,若无索引可能退化为表锁。InnoDB的自动提交机制使单条SQL也隐含事务,执行完立即释放锁。优化建议:避免高峰期DDL、确保查询使用索引、合理选择锁策略。原创 2025-05-25 15:52:50 · 673 阅读 · 0 评论 -
数据库预热
是在应用启动阶段,或,从而的一种优化手段当 FastAPI 或其他 Web 服务刚启动时:• 你虽然配置了数据库连接池(比如 SQLAlchemy、asyncpg);• 但其实它;• 第一个真实的请求进来时,才会;• 这个首次 handshake 连接建立 + TLS 认证等操作,可能耗时;⏳⚠️ 这在性能敏感系统(比如对外开放 API)中可能引起问题。数据库预热是通过在应用启动时提前“探路”数据库,原创 2025-04-12 21:18:33 · 1371 阅读 · 0 评论 -
主键id设计
主键id的 设计比较: uuid、自增、雪花、uuidv7原创 2025-03-26 23:52:03 · 1578 阅读 · 0 评论 -
ElasticSearch 简单使用
Elasticsearch 与传统的关系型数据库不同,它并不使用“数据库”和“表”的概念。相反,Elasticsearch 使用“索引”(index)来存储数据,索引相当于数据库中的“表”。而“文档”(document)则相当于表中的一行数据。Elasticsearch是NOSQL类型的数据库。索引(index)类似mysql的表,代表文档数据的集合,文档指的是ES中存储的一条数据。Elasticsearch存储结构MYSQL存储结构index(索引)表文档行,一行数据Field(字段)原创 2024-10-11 17:57:32 · 1040 阅读 · 0 评论 -
Alembic使用 (SqlAlchemy)
Fastapi 使用ORM 使用的是SqlAlchemy,这里使用alembic进行数据库文件迁移与数据库迁移。原创 2024-09-30 15:50:05 · 2281 阅读 · 0 评论
分享