温馨提示×

debian mongodb怎么配索引

小樊
37
2026-09-17 14:45:56
栏目: 云计算

在 Debian 上配置 MongoDB 索引,通常分为安装 MongoDB → 连接数据库 → 创建/管理索引几个步骤。下面给你一个实用、从零开始的说明。


一、Debian 上安装 MongoDB(简要)

以 Debian 11/12 为例(MongoDB 6.x / 7.x):

# 导入 MongoDB 公钥
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

# 添加源
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian $(lsb_release -cs)/mongodb-org/7.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

# 安装
sudo apt update
sudo apt install -y mongodb-org

# 启动
sudo systemctl enable --now mongod

二、连接 MongoDB

mongo
# 或新版本
mongosh

选择数据库:

use testdb

三、MongoDB 索引基本配置

1️⃣ 单字段索引

db.users.createIndex({ username: 1 })
  • 1 升序
  • -1 降序

2️⃣ 复合索引(最常用)

db.orders.createIndex({ user_id: 1, created_at: -1 })

✅ 适合:

db.orders.find({ user_id: 123 }).sort({ created_at: -1 })

3️⃣ 唯一索引

db.users.createIndex({ email: 1 }, { unique: true })

防止重复邮箱。


4️⃣ 文本索引(全文搜索)

db.articles.createIndex({ title: "text", content: "text" })

查询:

db.articles.find({ $text: { $search: "mongodb" } })

5️⃣ TTL 索引(自动过期)

db.logs.createIndex({ createdAt: 1 }, { expireAfterSeconds: 3600 })

1 小时后自动删除。


6️⃣ 后台创建索引(生产推荐)

db.users.createIndex({ age: 1 }, { background: true })

四、查看和管理索引

查看索引

db.users.getIndexes()

查看索引使用情况

db.users.aggregate([{ $indexStats: {} }])

删除索引

db.users.dropIndex("username_1")

五、生产环境建议(Debian + MongoDB)

✅ 使用 mongosh 而非旧 mongo
✅ 大表建索引用 background: true
✅ 避免过多索引(影响写入)
✅ 用 explain() 分析查询:

db.users.find({ username: "tom" }).explain("executionStats")

如果你愿意,可以告诉我:

  • MongoDB 版本
  • 数据表结构
  • 查询场景(慢查询 / 排序 / 搜索)

我可以直接帮你设计最优索引方案

0