SuperAPI AI 工具集

databases

数据与分析

查看项目

更新于 10-16 02:41

技能介绍

用途

该技能是一份统一指南,用于同时处理 MongoDB(文档型)与 PostgreSQL(关系型)数据库。它帮助使用者在具体场景中选择合适的数据库,并掌握两套系统的操作方式。

适用时机

资料列出的适用场景包括:设计数据库模式与数据模型;编写查询(SQL 或 MongoDB 查询语言);构建聚合管道或复杂连接;优化索引与查询性能;实施数据库迁移;设置复制、分片或集群;配置备份与灾难恢复;管理数据库用户与权限;分析慢查询与性能问题;管理生产数据库部署。

数据库选型指南

选择 MongoDB 的情形:模式灵活(结构频繁变化、异构数据);以文档为中心(自然的 JSON/BSON 数据模型);需要水平扩展(跨多台服务器分片);高写入吞吐(IoT、日志、实时分析);嵌套/层级数据(偏好内嵌文档);快速原型(无需迁移即可演进模式)。最适合:内容管理、目录、IoT 时间序列、实时分析、移动应用、用户画像。

选择 PostgreSQL 的情形:强一致性(ACID 事务关键);复杂关系(多对多连接、引用完整性);需要 SQL(团队专长、报表工具、BI 系统);数据完整性(严格模式校验、约束);成熟生态(丰富工具与扩展);复杂查询(窗口函数、CTE、分析型负载)。最适合:金融系统、电商交易、ERP、CRM、数据仓库、分析。

两者均支持:JSON/JSONB 存储与查询、全文搜索、地理空间查询与索引、复制与高可用、ACID 事务(MongoDB 4.0+)、较强的安全特性。

快速开始

MongoDB 设置(推荐 Atlas 云):在 mongodb.com/atlas 注册,创建 M0 免费集群,获取连接字符串。连接字符串示例:mongodb+srv://user:pass@cluster.mongodb.net/db。Shell 连接:mongosh "mongodb+srv://cluster.mongodb.net/mydb"。基本操作示例包括 insertOne、find、updateOne、deleteOne。

PostgreSQL 设置(Ubuntu/Debian):sudo apt-get install postgresql postgresql-contrib;启动服务 sudo systemctl start postgresql;连接 psql -U postgres -d mydb。基本操作示例包括 CREATE TABLE、INSERT、SELECT、UPDATE、DELETE。

常见操作

资料按创建/插入、读取/查询、更新、删除、索引五类,分别给出 MongoDB 与 PostgreSQL 的对照示例。例如 MongoDB 的 db.users.insertOne、db.users.find({ age: { $gte: 18 } })、db.users.updateOne、db.users.deleteOne、db.users.createIndex;PostgreSQL 的 INSERT INTO、SELECT ... WHERE、UPDATE ... SET、DELETE FROM、CREATE INDEX。

参考导航

MongoDB 参考文档:mongodb-crud.md(CRUD 操作、查询运算符、原子更新)、mongodb-aggregation.md(聚合管道、阶段、运算符、模式)、mongodb-indexing.md(索引类型、复合索引、性能优化)、mongodb-atlas.md(Atlas 云设置、集群、监控、搜索)。

PostgreSQL 参考文档:postgresql-queries.md(SELECT、JOIN、子查询、CTE、窗口函数)、postgresql-psql-cli.md(psql 命令、元命令、脚本)、postgresql-performance.md(EXPLAIN、查询优化、vacuum、索引)、postgresql-administration.md(用户管理、备份、复制、维护)。

Python 工具

scripts/ 目录下的数据库工具脚本:db_migrate.py(为两种数据库生成并应用迁移)、db_backup.py(备份与恢复 MongoDB 和 PostgreSQL)、db_performance_check.py(分析慢查询并推荐索引)。示例命令:python scripts/db_migrate.py --db mongodb --generate "add_user_index";python scripts/db_backup.py --db postgres --output /backups/;python scripts/db_performance_check.py --db mongodb --threshold 100ms。

关键差异

资料以表格对比两者:数据模型(文档 JSON/BSON 对关系表/行)、模式(灵活动态对严格预定义)、查询语言(MongoDB 查询语言对 SQL)、连接($lookup 有限对原生优化)、事务(多文档 4.0+ 对原生 ACID)、扩展(水平分片对垂直主库、水平扩展)、索引(单字段、复合、文本、地理等对 B-tree、hash、GiST、GIN 等)。

最佳实践

MongoDB:一对少关系用内嵌文档;一对多或多对多用引用文档;为高频查询字段建索引;复杂转换用聚合管道;生产环境启用认证与 TLS;使用 Atlas 托管。

PostgreSQL:模式规范化到 3NF,为性能可反规范化;用外键保证引用完整性;为外键和常用过滤列建索引;用 EXPLAIN ANALYZE 优化查询;定期 VACUUM 与 ANALYZE 维护;Web 应用使用连接池(pgBouncer)。

资源

MongoDB 文档:https://www.mongodb.com/docs/;PostgreSQL 文档:https://www.postgresql.org/docs/;MongoDB University:https://learn.mongodb.com/;PostgreSQL Tutorial:https://www.postgresqltutorial.com/。

限制

资料未提供该技能的具体安装方式、收费与价格信息、支持平台、实际效果数据,这些内容暂未提供。