
数据库
文章平均质量分 60
各种数据库相关的技术文章分享
源滚滚编程
人生苦短,我用Python,坚持每天学习,坚持每天进步一点点,一对一带徒弟。
展开
-
生死时速:数据库连接池如何拯救百万级QPS系统?
传统架构下,每个请求需要新建TCP连接、执行SQL、释放连接,单节点QPS骤降至1200,而采用智能连接池的子系统却保持着稳定的18万QPS。当我们将连接池部署到微服务架构中,每个连接都变成了量子纠缠态的信息载体。测试数据显示,在K8s集群中配合HPA自动扩缩容,整体系统吞吐量提升300%,资源成本降低45%。这不仅是技术的进化,更是软件工程哲学的范式转移——在这个实时计算的时代,连接池正在书写新的底层逻辑。测试数据显示,在10万并发下,裸连接请求会产生超过60%的网络等待时间。原创 2025-05-19 20:50:34 · 903 阅读 · 0 评论 -
Spring Boot操作MongoDB的完整示例大全
Data@Document(collection = "users") // 指定集合名@Id@Indexed(direction = IndexDirection.ASCENDING) // 单字段索引@TextIndexed // 全文索引。原创 2025-05-06 12:28:46 · 433 阅读 · 0 评论 -
MongoDB常用操作示例
以下是基于 MongoDB Shell 的完整操作示例,覆盖数据库管理、集合操作、文档处理、聚合分析、索引管理等核心功能,并结合实际场景说明。所有示例均结合搜索结果中的技术要点整理而成。原创 2025-05-06 09:58:21 · 545 阅读 · 0 评论 -
SpringBoot整合MongoDB:构建高性能数据存储解决方案
在分布式系统与微服务架构日益复杂的今天,传统关系型数据库在处理非结构化数据和高并发场景时面临性能瓶颈。MongoDB作为文档型数据库的代表,凭借其灵活的数据模型和水平扩展能力,成为现代应用开发的重要选择。本文将从架构设计到代码实现,系统讲解如何通过SpringBoot构建高效稳定的MongoDB应用体系。SpringBoot通过自动配置机制显著降低了框架集成复杂度,其提供的模块完美适配MongoDB的文档存储特性。两者结合可实现:典型架构设计包含以下层级:二、环境准备与核心依赖2.1 版本兼容性管理原创 2025-05-05 10:53:07 · 897 阅读 · 0 评论 -
基于Docker的MongoDB环境搭建:从零开始的完整实践指南
通过上述步骤,我们成功构建了具备生产级安全特性的MongoDB容器环境。秒级部署:通过镜像模板实现环境快速重建灵活扩展:支持垂直扩容与水平分片集群安全合规:满足GDPR等数据安全法规要求Kubernetes Operator实现自动化运维MongoDB Atlas混合云部署架构基于F5 BigIP的智能负载均衡方案掌握容器化数据库部署技术,将为构建云原生应用奠定坚实基础。建议开发者持续关注CNCF与MongoDB官方社区的技术动态,及时引入智能化运维工具提升系统可靠性。原创 2025-05-05 10:02:12 · 706 阅读 · 0 评论 -
MyBatis-Plus:为现代Java开发赋能的ORM进化论
MyBatis-Plus通过智能化、工程化的设计理念,成功弥补了传统ORM框架在开发效率与维护成本上的缺陷。对于追求高效开发的团队而言,MP不仅是一个工具,更是提升工程成熟度的战略选择。在Java持久层框架的演进历程中,MyBatis以其灵活性和对SQL的精准控制能力,长期占据开发者的技术选型清单。但随着微服务与云原生架构的普及,传统MyBatis在开发效率与工程化规范上的短板逐渐显现。(简称MP)作为MyBatis的增强工具,以“只做增强不做改变”的设计哲学,重新定义了ORM框架的开发体验。原创 2025-04-20 11:15:37 · 650 阅读 · 0 评论 -
Aerich实战指南:零基础掌握异步ORM数据库迁移工具
在Python异步编程的浪潮中,数据库迁移工具的选择直接影响开发效率与工程规范性。Aerich作为Tortoise ORM的官方迁移工具,以简洁的命令行操作和强大的自动化能力,成为异步开发者不可或缺的利器。本文将从零开始,通过一个博客系统的实战案例,手把手教你掌握Aerich的核心用法。掌握Aerich后,开发者可将精力聚焦业务逻辑,告别手动维护数据库结构的低效时代。异步生态的成熟,让Python在高并发场景下的竞争力进一步增强。通过以上步骤,我们完成了从零配置、模型定义、迁移操作到生产优化的完整流程。原创 2025-04-20 08:36:53 · 269 阅读 · 0 评论 -
Aerich:Python异步生态中的数据库迁移革命
通过将数据库变更转化为可版本化、可测试、可回滚的代码操作,Aerich帮助开发者摆脱了手动协调SQL脚本的泥潭,真正实现了“基础设施即代码”的理想。相较于同步生态的Alembic,Aerich的异步基因使其在响应速度上具备天然优势——实测显示,对于包含100个迁移步骤的项目,Aerich的迁移执行效率比Alembic提升40%以上。它专为Tortoise ORM设计,实现了异步优先的数据库迁移管理,将数据库变更转化为可版本控制的代码化操作,同时保持与Python类型系统的深度集成。同时,其版本回滚功能(原创 2025-04-20 08:31:21 · 1020 阅读 · 0 评论 -
Tortoise ORM:为Python异步世界量身打造的高性能ORM框架
作为异步编程时代的ORM标杆,Tortoise ORM以其卓越的性能表现、符合直觉的API设计和强大的类型系统,正在重塑Python后端开发范式。无论是构建轻量级微服务还是高并发分布式系统,选择Tortoise ORM都意味着选择更高的生产效率和更优的资源利用率。在Python异步编程席卷Web开发领域的今天,传统同步ORM框架的局限性日益凸显。Tortoise ORM应运而生,以原生异步支持、简洁的API设计和强大的类型安全特性,成为构建高并发应用的利器。实现N+1查询优化,联表查询效率提升5-10倍。原创 2025-04-20 08:17:47 · 680 阅读 · 0 评论 -
JDBC操作数据库的基本概念与核心价值
JDBC作为Java生态中经久不衰的数据库交互方案,其核心步骤历经多年演进仍保持高度稳定性。从驱动加载到资源释放,每个环节都体现了标准化设计与安全性考量。随着云原生技术的发展,JDBC正在适配分布式数据库与异步操作模型,未来将继续在微服务、大数据等领域发挥关键作用。掌握JDBC不仅是Java开发者的基本功,更是深入理解数据库交互机制的重要途径。原创 2025-04-10 08:23:29 · 599 阅读 · 0 评论 -
从零到精通:Kafka学习路径全解析
学习Kafka是一个从“会用”到“懂原理”再到“能优化”的渐进过程。建议遵循“概念→实践→原理→实战”的路径,结合业务场景反复锤炼技能。无论是应对日均亿级消息的挑战,还是构建实时智能系统,掌握Kafka都将成为开发者技术版图中的关键拼图。原创 2025-04-08 08:05:04 · 1155 阅读 · 0 评论 -
封装通用JDBC工具类:架构设计与高性能实践
通过封装通用JDBC工具类,开发者可将精力集中在业务逻辑实现,而非重复的数据库操作细节。配置与代码分离:支持动态更新资源生命周期管理:杜绝泄漏风险防御性设计:内置安全与监控扩展能力:适配未来架构演进完整实现需约300行代码(含注释),建议结合具体业务需求增加分页查询、乐观锁等高级特性。最终工具类应成为数据访问层的坚实基座,支撑企业级应用的高效运行。原创 2025-04-07 08:44:12 · 1168 阅读 · 0 评论 -
JDBC快速入门:从零搭建高效数据库交互层
通过上述步骤,可快速实现基于JDBC的数据库交互层。ORM框架整合:引入MyBatis/JPA简化CRUD操作分库分表:结合Sharding-JDBC实现水平扩展监控体系:集成Micrometer监控SQL性能指标JDBC作为Java生态的数据库基石,深入理解其原理与最佳实践,是构建高可靠数据中台的核心能力之一。原创 2025-04-07 08:40:46 · 606 阅读 · 0 评论 -
什么是MySQL
MySQL 是一种关系型数据库管理系统(RDBMS),它基于 SQL(结构化查询语言),是目前最流行和广泛使用的数据库管理系统之一。原创 2025-03-24 08:56:41 · 326 阅读 · 0 评论 -
什么是SQL?
用于定义和修改数据库的结构,包括创建、修改和删除数据库对象,如表、索引、视图等。原创 2025-03-24 08:56:11 · 961 阅读 · 0 评论 -
使用 FastAPI 和 Motor 实现多表关联的 API
models.pymain.py本文详细介绍了如何使用 FastAPI 和 Motor 实现多表关联的 API,包括用户管理、文章管理以及表之间的关联查询。通过结合 FastAPI 的高性能和 Motor 的异步 MongoDB 操作,我们可以构建一个高效、易扩展的后端服务。希望这篇文章对你有所帮助!如果有任何问题,欢迎留言讨论!原创 2025-01-25 09:10:53 · 335 阅读 · 0 评论 -
使用 FastAPI 和 Motor 实现用户管理 API
models.pymain.py本文详细介绍了如何使用 FastAPI 和 Motor 实现一个用户管理 API,包括查询、分页、创建、更新和删除功能。通过结合 FastAPI 的高性能和 Motor 的异步 MongoDB 操作,我们可以构建一个高效、易扩展的后端服务。希望这篇文章对你有所帮助!如果有任何问题,欢迎留言讨论!原创 2025-01-25 09:05:39 · 433 阅读 · 0 评论 -
使用 Motor 进行异步 MongoDB 操作:进阶案例与详细注解
本文提供了更多 Motor 的进阶案例,包括批量操作、索引管理、聚合管道、事务处理、REST API 和 WebSocket 实现等。通过这些示例,你可以更深入地掌握 Motor 的强大功能,并构建高效的异步 MongoDB 应用程序。如果你有更多需求,可以参考Motor 官方文档。原创 2025-01-24 16:13:21 · 680 阅读 · 0 评论 -
使用 Motor 进行异步 MongoDB 操作:入门指南与详细注解
Motor 是一个强大的异步 MongoDB 驱动程序,适用于asyncioTornado和FastAPI等异步框架。通过这些示例,你可以快速上手 Motor 并开始构建高效的异步 MongoDB 应用程序。如果你有更多需求,可以参考Motor 官方文档。原创 2025-01-24 16:08:19 · 962 阅读 · 0 评论 -
掌握 SQLAlchemy 的多对多关系:6 个独立案例详解(用户与角色)
学习如何定义多对多关系。插入用户和角色数据。定义多对多关系并插入数据。通过用户查询角色。通过角色查询用户。为用户添加新角色。删除用户的角色。删除用户及其角色。每个案例都是独立的、可运行的脚本,方便你直接测试和学习。希望本文能帮助你更好地掌握 SQLAlchemy 的多对多关系!原创 2025-01-22 12:35:59 · 462 阅读 · 0 评论 -
掌握 SQLAlchemy 的一对多关系:6 个独立案例详解(作者与文章)
学习如何定义一对多关系。插入作者和文章数据。定义一对多关系并插入数据。通过作者查询文章。通过文章查询作者。添加新文章。删除文章。删除作者及其文章。每个案例都是独立的、可运行的脚本,方便你直接测试和学习。希望本文能帮助你更好地掌握 SQLAlchemy 的一对多关系!原创 2025-01-22 11:07:35 · 451 阅读 · 0 评论 -
掌握 SQLAlchemy 的一对一关系:6 个独立案例详解
学习如何定义一对一关系。插入用户和用户详情数据。定义一对一关系并插入数据。通过用户查询用户详情。通过用户详情查询用户。更新用户详情。删除用户详情。删除用户及其详情。每个案例都是独立的、可运行的脚本,方便你直接测试和学习。希望本文能帮助你更好地掌握 SQLAlchemy 的一对一关系!原创 2025-01-22 11:05:55 · 436 阅读 · 0 评论 -
掌握 SQLAlchemy 的更新与删除操作:6 个独立案例详解
更新单个用户信息。批量更新满足条件的用户。删除单个用户。批量删除满足条件的用户。实现“如果存在则更新,否则插入”的功能。删除所有用户。每个案例都是独立的、可运行的脚本,方便你直接测试和学习。希望本文能帮助你更好地掌握 SQLAlchemy 的更新与删除操作!原创 2025-01-22 10:51:16 · 1119 阅读 · 0 评论 -
从 0 到 1 学习 SQLAlchemy:通过 4 个案例掌握数据库操作
通过以上 4 个案例,我们从基础的环境搭建、数据操作,逐步深入到关系模型和事务管理。SQLAlchemy 的强大功能可以帮助我们更高效地操作数据库,同时保持代码的可读性和可维护性。如果你对 SQLAlchemy 的更多高级功能(如异步支持、事件监听等)感兴趣,可以继续深入学习官方文档或相关教程。希望本文能为你打开 SQLAlchemy 的大门,助你在数据库操作中游刃有余!原创 2025-01-22 09:48:50 · 803 阅读 · 0 评论 -
从0到1学习 SQLAlchemy 2.x:打造你的 Python 数据库操作利器
SQLAlchemy 2.x 是一个功能强大且灵活的 ORM 工具,掌握它将极大地提升你的 Python 数据库操作能力。通过本文提供的学习路线和资源,相信你能够从零开始学习 SQLAlchemy 2.x,并将其应用到实际项目中。祝你学习愉快!原创 2025-01-22 09:27:24 · 1103 阅读 · 0 评论 -
Python流行orm框架对比
它提供了足够的功能来满足小型项目的需求,同时保持了代码的简洁和易于维护。因此,如果你的项目不是基于Django框架,并且需要一个简单、快速上手的ORM,Peewee会是一个更好的选择。Django ORM因其与Django框架的紧密集成和直观的API而受到推荐,而Peewee则因其轻量级和简单性而适合初学者。在小型项目中,选择Peewee和Django ORM之间的合适框架,需要考虑项目的具体需求和特点。这些ORM框架各有特点,适用于不同的项目和场景,开发者可以根据项目需求和个人偏好选择合适的ORM框架。原创 2024-12-29 23:01:03 · 827 阅读 · 0 评论 -
Pydantic及其BaseSettings详解
Pydantic是一个基于Python类型提示的数据验证和设置管理库。它通过定义数据模型来验证数据,并提供类型提示和自动生成的文档。Pydantic的核心优势在于其能够利用Python的类型注解来验证数据,确保数据的准确性和一致性。Pydantic及其类为Python应用提供了强大的数据验证和配置管理功能。通过利用Python的类型提示,Pydantic确保了数据的准确性和一致性,而则简化了从环境变量和.env文件中读取和管理配置的过程。原创 2024-12-28 10:06:27 · 728 阅读 · 0 评论 -
Passlib库介绍及使用指南
Passlib不仅提供了易于使用的API,还集成了多种安全特性,如加盐、密钥派生函数等,广泛应用于用户账户系统、敏感数据保护和多因素认证等场景。Passlib是一个功能强大且易用的密码哈希库,支持多种安全的哈希算法,能够帮助你轻松处理密码的加密和验证。通过本文的介绍,你可以学会如何使用Passlib来加密密码、验证密码,并在实际项目中确保密码的安全性。你应该在需要处理用户密码的任何时候使用Passlib,特别是在开发多用户应用程序、用户账户系统或者任何需要密码保护的场景中。什么是Passlib?原创 2024-12-28 09:01:25 · 505 阅读 · 0 评论 -
jwt3快速入门教程
JWT 规范定义了一些注册声明名称,并定义了如何使用它们。原创 2024-12-28 08:40:12 · 126 阅读 · 0 评论 -
PyPika:Python SQL 查询构建器
Pypika 是一个 Python 库,用于构建 SQL 查询。它提供了一种简洁、直观的方式来生成 SQL 语句,而无需手动编写复杂的 SQL 代码。Pypika 的设计哲学是尽可能地接近 SQL 的自然语法,同时利用 Python 的强大功能来简化查询构建过程。原创 2024-12-27 16:46:14 · 814 阅读 · 0 评论 -
tortoise3 快速入门教程
张三, 李四, 王五。原创 2024-12-27 14:21:20 · 710 阅读 · 0 评论 -
基于Ubuntu系统,2台服务器使用Docker搭建MinIO集群及验证方法
通过上述步骤,我们成功在两台Ubuntu服务器上使用Docker搭建了MinIO集群,并使用Python进行了连接和操作的示例。MinIO集群的搭建和使用是处理大规模数据存储的有效解决方案。它支持横向扩展,提供高可用性和数据冗余,非常适合处理大量非结构化数据,如图片、视频、日志文件等。使用Docker容器化技术搭建MinIO集群可以简化部署和管理过程,提高系统的可移植性和可扩展性。Docker容器的隔离性也使得每个MinIO节点的配置和管理变得更加简单。为什么使用Docker搭建MinIO集群。原创 2024-12-09 08:45:44 · 561 阅读 · 0 评论 -
MinIO集群是什么,有什么用?以CentOS为例,具体实现步骤详细讲解
MinIO基于Amazon S3协议,并提供了与S3兼容的API,这使得它能够与现有的S3生态系统无缝集成。:MinIO可以作为云原生应用程序的对象存储后端,与Kubernetes集成,提供持久性存储和数据共享。:MinIO可以用于存储和分发多媒体内容,与内容分发网络(CDN)集成,提供快速的内容传输和缓存功能。:MinIO可以用于存储和分析大规模的数据集,与大数据处理框架集成,提供高性能的数据访问和处理能力。:MinIO可以用于存储和分析大规模的物联网(IoT)数据,处理来自传感器和设备的实时数据。原创 2024-12-09 08:35:21 · 394 阅读 · 0 评论 -
20241205私教课笔记 文档管理系统 不同角色看到的菜单不一样
20241207 09.00-11.00 3/20 课。原创 2024-12-07 11:12:26 · 386 阅读 · 0 评论 -
20241205私教课笔记 文档管理系统 不同角色看到的菜单不一样
20241206 20.00-22.00 5/20 课。原创 2024-12-06 22:01:56 · 395 阅读 · 0 评论 -
20241204私教课笔记 文档管理系统 动态菜单
20241204 14.00-16.00 8/20 课。原创 2024-12-04 16:08:04 · 809 阅读 · 0 评论 -
20241203私教课上课笔记 动态菜单
新的问题: 上级菜单,现在显示的的是ID,实际上应该渲染为上级菜单的name名称,这样对用户更友好,看起来更方便。遇到的问题是,最下层,没有子菜单了,但是还是有个 + 号,应该解决掉。最外层是新增一级菜单,通过表格里面的新建,是新建改行菜单的下级菜单。解决方案: 在数据库表里面记录上级菜单的名称。初步解决方案是移除到空的chilren。问题: 不知道上级菜单的名字是什么。原创 2024-12-04 09:01:30 · 435 阅读 · 0 评论 -
Python操作MinIO分页查询Bucket指南
通过上述步骤,我们成功地使用Python操作MinIO进行了分页查询。性能优化:分页查询减少了单次请求的数据量,减轻了服务器压力,提高了响应速度。用户体验:用户可以逐步浏览数据,而不是一次性面对大量数据,提高了用户体验。灵活性:可以根据需要调整每页的数据量,适应不同的查询需求。在使用MinIO进行分页查询时,重要的是理解max_keys和参数的作用。max_keys用于限制每页的数据量,而用于指定分页的起始点。通过合理使用这两个参数,您可以有效地管理和检索大规模数据集。原创 2024-12-03 17:10:20 · 695 阅读 · 0 评论 -
Python操作MinIO:Bucket的Object Lock特性解析与应用
MinIO提供了Object Lock功能,这是一种数据保护机制,允许用户锁定存储桶中的数据,防止数据被误删除或修改。Bucket的Object Lock是MinIO提供的一种数据保护功能,它允许用户对存储桶中的数据进行锁定,以确保数据的不可变性和合规性。:如果需要在已存在的存储桶上启用Object Lock,先备份该存储桶的所有数据,然后创建一个新的启用Object Lock的存储桶,并将数据迁移到新存储桶。:这个示例为包含敏感数据的存储桶启用了Object Lock,以确保数据的合规性和不可变性。原创 2024-12-01 16:55:06 · 875 阅读 · 0 评论 -
Python操作MinIO:深入理解Bucket标签(Tag)
MinIO提供了Bucket标签(Tag)功能,允许用户为存储桶(Bucket)或对象(Object)附加键值对形式的标签,以便于管理和检索。通过Python操作MinIO,用户可以轻松地为存储桶设置、获取和删除标签,以适应不同的业务需求和管理策略。无论是项目资源管理、成本追踪还是安全控制,MinIO的标签系统都是一个强大的工具。Bucket的标签(Tag)是一组键值对,可以附加到MinIO的存储桶或对象上。的存储桶设置了部门标签,有助于追踪不同部门的存储使用和成本。方法获取指定存储桶的标签,并打印出来。原创 2024-12-01 16:35:58 · 482 阅读 · 0 评论