Mongodb cung cấp loại chỉ mục hỗ trợ tìm kiếm nội dung chuỗi trong bộ sưu tập

Các chỉ mục hỗ trợ thực thi hiệu quả các truy vấn trong MongoDB. Không có chỉ mục, MongoDB phải thực hiện quét bộ sưu tập, tôi. e. quét mọi tài liệu trong một bộ sưu tập, để chọn những tài liệu khớp với câu lệnh truy vấn. Nếu tồn tại một chỉ mục thích hợp cho một truy vấn, MongoDB có thể sử dụng chỉ mục đó để giới hạn số lượng tài liệu mà nó phải kiểm tra

Chỉ mục là cấu trúc dữ liệu đặc biệt [1] lưu trữ một phần nhỏ tập dữ liệu của bộ sưu tập ở dạng dễ duyệt. Chỉ mục lưu trữ giá trị của một trường cụ thể hoặc tập hợp các trường, được sắp xếp theo giá trị của trường. Thứ tự của các mục nhập chỉ mục hỗ trợ khớp đẳng thức hiệu quả và các hoạt động truy vấn dựa trên phạm vi. Ngoài ra, MongoDB có thể trả về kết quả được sắp xếp bằng cách sử dụng thứ tự trong chỉ mục

Sơ đồ sau đây minh họa một truy vấn chọn và sắp xếp các tài liệu phù hợp bằng cách sử dụng một chỉ mục

Mongodb cung cấp loại chỉ mục hỗ trợ tìm kiếm nội dung chuỗi trong bộ sưu tập

Về cơ bản, các chỉ mục trong MongoDB tương tự như các chỉ mục trong các hệ thống cơ sở dữ liệu khác. MongoDB xác định các chỉ mục ở cấp bộ sưu tập và hỗ trợ các chỉ mục trên bất kỳ trường hoặc trường con nào của tài liệu trong bộ sưu tập MongoDB

默认 _id 索引¶

MongoDB tạo một chỉ mục duy nhất trên trường _id trong quá trình tạo bộ sưu tập. Chỉ mục _id ngăn khách hàng chèn hai tài liệu có cùng giá trị cho _id field. You cannot drop this index on the _id .

注解

Trong các cụm phân đoạn, nếu bạn không sử dụng trường _id làm khóa phân đoạn, thì ứng dụng của bạn phải đảm bảo tính duy nhất của các giá trị . Điều này thường được thực hiện bằng cách sử dụng ObjectId được tạo tự động tiêu chuẩn. _id field to prevent errors. This is most-often done by using a standard auto-generated ObjectId.

创建一个索引¶

Để tạo chỉ mục, hãy sử dụng db. thu thập. createIndex() hoặc một phương pháp tương tự từ trình điều khiển của bạn.

db.collection.createIndex( <key and index type specification>, <options> )

db db. thu thập. Phương thức createIndex() chỉ tạo một chỉ mục nếu một chỉ mục có cùng thông số kỹ thuật chưa tồn tại.

[1]

MongoDB 索引使用一个B树数据结构。

索引类型¶

MongoDB cung cấp một số loại chỉ mục khác nhau để hỗ trợ các loại dữ liệu và truy vấn cụ thể

Trường đơn¶

Ngoài chỉ mục _id do MongoDB xác định, MongoDB hỗ trợ tạo chỉ mục tăng dần/giảm dần do người dùng xác định trên một trường duy nhất của .

Mongodb cung cấp loại chỉ mục hỗ trợ tìm kiếm nội dung chuỗi trong bộ sưu tập

Đối với thao tác sắp xếp và chỉ mục trường đơn, thứ tự sắp xếp (i. e. tăng dần hoặc giảm dần) của khóa chỉ mục không thành vấn đề vì MongoDB có thể duyệt chỉ mục theo một trong hai hướng

查阅 单键索引 and 使用单键索引排序 了解更多关于单字段索引的信息。

复合索引¶

MongoDB cũng hỗ trợ các chỉ mục do người dùng xác định trên nhiều trường, tôi. e. chỉ số hợp chất

Thứ tự các trường được liệt kê trong chỉ mục phức hợp có ý nghĩa. Chẳng hạn, nếu một chỉ mục phức hợp bao gồm { userid. 1, điểm. -1 } , chỉ mục sắp xếp trước theo userid and then, within each userid value, sorts by score.

Mongodb cung cấp loại chỉ mục hỗ trợ tìm kiếm nội dung chuỗi trong bộ sưu tập

Đối với các chỉ mục phức hợp và hoạt động sắp xếp, thứ tự sắp xếp (i. e. tăng dần hoặc giảm dần) của các khóa chỉ mục có thể xác định xem chỉ mục có thể hỗ trợ thao tác sắp xếp hay không. Xem 排序顺序 để biết thêm thông tin về tác động của thứ tự chỉ mục đối với kết quả trong chỉ mục phức hợp

See 复合索引 and 在多个键上排序 for more information on compound indexes

Chỉ mục đa phím¶

MongoDB sử dụng các chỉ mục đa khóa để lập chỉ mục nội dung được lưu trữ trong mảng. Nếu bạn lập chỉ mục cho một trường chứa giá trị mảng, MongoDB sẽ tạo các mục nhập chỉ mục riêng cho mọi phần tử của mảng. Các chỉ mục đa khóa này cho phép các truy vấn chọn tài liệu có chứa mảng bằng cách so khớp trên phần tử hoặc các phần tử của mảng. MongoDB tự động xác định xem có tạo chỉ mục nhiều khóa hay không nếu trường được lập chỉ mục chứa giá trị mảng;

Mongodb cung cấp loại chỉ mục hỗ trợ tìm kiếm nội dung chuỗi trong bộ sưu tập

See 多键索引 and Multikey Index Bounds for more information on multikey indexes

Chỉ số không gian địa lý¶

Để hỗ trợ truy vấn hiệu quả dữ liệu tọa độ không gian địa lý, MongoDB cung cấp hai chỉ mục đặc biệt. Chỉ mục 2d sử dụng hình học phẳng khi trả về kết quả và chỉ mục 2dsphere sử dụng hình học hình cầu để trả về kết quả

See 2d 索引原理 for a high level introduction to geospatial indexes

Chỉ mục văn bản¶

MongoDB cung cấp loại chỉ mục văn bản hỗ trợ tìm kiếm nội dung chuỗi trong bộ sưu tập. Các chỉ mục văn bản này không lưu trữ các từ dừng dành riêng cho ngôn ngữ (e. g. “the”, “a”, “or”) và tách các từ trong bộ sưu tập để chỉ lưu trữ các từ gốc.

See 文本索引 for more information on text indexes and search

Chỉ mục băm¶

Để hỗ trợ sharding dựa trên hàm băm, MongoDB cung cấp loại chỉ mục được băm, loại chỉ mục này lập chỉ mục cho hàm băm của giá trị của một trường. Các chỉ mục này có phân phối giá trị ngẫu nhiên hơn dọc theo phạm vi của chúng, nhưng chỉ hỗ trợ đối sánh bằng và không thể hỗ trợ các truy vấn dựa trên phạm vi

Thuộc tính chỉ mục¶

Chỉ mục duy nhất¶

Thuộc tính duy nhất cho một chỉ mục khiến MongoDB từ chối các giá trị trùng lặp cho trường được lập chỉ mục. Khác với ràng buộc duy nhất, các chỉ mục duy nhất có thể hoán đổi chức năng với các chỉ mục MongoDB khác

Chỉ mục một phần¶

3. 2 新版功能

Chỉ mục một phần chỉ lập chỉ mục các tài liệu trong bộ sưu tập đáp ứng biểu thức bộ lọc được chỉ định. Bằng cách lập chỉ mục một tập hợp con của các tài liệu trong một bộ sưu tập, các chỉ mục một phần có yêu cầu lưu trữ thấp hơn và giảm chi phí hiệu suất để tạo và duy trì chỉ mục

Các chỉ mục một phần cung cấp một tập hợp siêu chức năng của các chỉ mục thưa thớt và nên được ưu tiên hơn các chỉ mục thưa thớt

Chỉ mục thưa thớt¶

Thuộc tính thưa thớt của một chỉ mục đảm bảo rằng chỉ mục đó chỉ chứa các mục cho các tài liệu có trường được lập chỉ mục. Chỉ mục bỏ qua các tài liệu không có trường được lập chỉ mục

Bạn có thể kết hợp tùy chọn chỉ mục thưa thớt với tùy chọn chỉ mục duy nhất để từ chối các tài liệu có giá trị trùng lặp cho một trường nhưng bỏ qua các tài liệu không có khóa được lập chỉ mục

Chỉ số TTL¶

Chỉ mục TTL là chỉ mục đặc biệt mà MongoDB có thể sử dụng để tự động xóa tài liệu khỏi bộ sưu tập sau một khoảng thời gian nhất định. Điều này lý tưởng cho một số loại thông tin như dữ liệu sự kiện do máy tạo, nhật ký và thông tin phiên chỉ cần tồn tại trong cơ sở dữ liệu trong một khoảng thời gian hữu hạn

Nhìn thấy. 通过设置TTL使集合中的数据过期 for implementation instructions

Sử dụng chỉ mục¶

Chỉ mục có thể cải thiện hiệu quả của hoạt động đọc. Hướng dẫn 分析查询性能 cung cấp ví dụ về thống kê thực thi của truy vấn có và không có chỉ mục

Để biết thông tin về cách MongoDB chọn một chỉ mục để sử dụng, hãy xem trình tối ưu hóa truy vấn

Truy vấn được bảo hiểm¶

Khi tiêu chí truy vấn và phép chiếu của truy vấn chỉ bao gồm các trường được lập chỉ mục, MongoDB sẽ trả về kết quả trực tiếp từ chỉ mục mà không cần quét bất kỳ tài liệu nào hoặc đưa tài liệu vào bộ nhớ. Những truy vấn được bảo hiểm này có thể rất hiệu quả

Mongodb cung cấp loại chỉ mục hỗ trợ tìm kiếm nội dung chuỗi trong bộ sưu tập

Để biết thêm thông tin về các truy vấn được bảo hiểm, hãy xem Truy vấn được bảo hiểm

Giao lộ chỉ mục¶

2. 6 新版功能

MongoDB có thể sử dụng giao điểm của các chỉ mục để thực hiện các truy vấn. Đối với các truy vấn chỉ định các điều kiện truy vấn phức hợp, nếu một chỉ mục có thể đáp ứng một phần của điều kiện truy vấn và một chỉ mục khác có thể đáp ứng một phần khác của điều kiện truy vấn, thì MongoDB có thể sử dụng giao điểm của hai chỉ mục để đáp ứng truy vấn. Việc sử dụng chỉ mục tổng hợp hay sử dụng giao điểm chỉ mục hiệu quả hơn tùy thuộc vào truy vấn cụ thể và hệ thống

For details on index intersection, see 索引交集

Những hạn chế¶

Một số hạn chế áp dụng cho chỉ mục, chẳng hạn như độ dài của khóa chỉ mục hoặc số lượng chỉ mục trên mỗi bộ sưu tập. Xem Giới hạn chỉ mục để biết chi tiết

Cân nhắc bổ sung¶

Mặc dù các chỉ mục có thể cải thiện hiệu suất truy vấn, các chỉ mục cũng đưa ra một số cân nhắc về hoạt động. Xem Cân nhắc hoạt động cho các chỉ mục để biết thêm thông tin

Nếu bộ sưu tập của bạn chứa một lượng lớn dữ liệu và ứng dụng của bạn cần có khả năng truy cập dữ liệu trong khi tạo chỉ mục, hãy xem xét việc tạo chỉ mục ở chế độ nền, như được mô tả trong 后台创建

To build or rebuild indexes for a replica set, see 在复制集上创建索引

Một số trình điều khiển có thể chỉ định chỉ mục bằng cách sử dụng NumberLong(1) thay vì 1 as the specification. This does not have any affect on the resulting index.

  • 单键索引
  • 复合索引
  • 多键索引
    • Giới hạn chỉ mục đa phím
  • 文本索引
    • 指定文本索引的语言
    • 文本 索引指定名称
    • 通过权重控制搜索结果
    • 限制被扫描项的数量
  • 2dsphere 索引
    • Tìm nhà hàng với truy vấn không gian địa lý
    • 查询 2dsphere 索引
    • Đối tượng GeoJSON
  • 2d 索引
    • 创建一个 2d 索引
    • 查询 2d 索引
    • 2d 索引原理
    • 使用球面几何计算距离
  • Chỉ mục băm
  • 索引属性
    • TTL索引
      • 通过设置TTL使集合中的数据过期
    • 唯一索引
    • Chỉ mục một phần
    • Chỉ mục phân biệt chữ hoa chữ thường
    • 稀疏索引
  • Xây dựng chỉ mục
    • 在复制集上创建索引
  • 索引交集
  • Quản lý chỉ mục
  • 衡量索引的使用情况
  • 索引策略
    • 创建索引以支持查询
    • 使用索引来排序查询结果
    • 确保索引与内存相适应
    • 创建能确保选择力的查询
  • 索引参考

Tài nguyên bổ sung¶

  • Thẻ tham khảo nhanh

←   Khắc phục sự cố SNMP 单键索引  →

© MongoDB, Inc 2008-2017. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc

Loại chỉ mục nào được MongoDB hỗ trợ?

MongoDB cung cấp một số loại chỉ mục khác nhau để hỗ trợ các loại dữ liệu và truy vấn cụ thể. .
Trường đơn. .
chỉ số hợp chất. .
Chỉ mục đa phím. .
chỉ mục không gian địa lý. .
Chỉ mục văn bản. .
Chỉ mục băm. .
Chỉ mục nhóm

Chỉ mục tìm kiếm MongoDB là gì?

Chỉ mục tìm kiếm và MongoDB . Bạn có thể tạo chỉ mục trên bất kỳ lĩnh vực nào. Các chỉ mục có thể nằm trên một trường, nhiều trường hoặc thậm chí là ký tự đại diện cho mảng. used to increase your database performance. You can create indexes on any field. Indexes can be on a single field, multiple fields, or even wildcards for arrays.

Phương pháp nào được sử dụng để tìm kiếm dữ liệu từ bộ sưu tập MongoDB?

Phương thức Find() . Trong MongoDB, phương thức find() được sử dụng để chọn tài liệu trong bộ sưu tập và trả về con trỏ cho tài liệu đã chọn. Con trỏ nghĩa là một con trỏ trỏ đến một tài liệu, khi chúng ta sử dụng phương thức find() nó sẽ trả về một con trỏ trên các tài liệu đã chọn và trả về từng cái một.

Chỉ mục văn bản MongoDB là gì?

MongoDB cung cấp chỉ mục văn bản để hỗ trợ các truy vấn tìm kiếm văn bản trên nội dung chuỗi . Chỉ mục văn bản có thể bao gồm bất kỳ trường nào có giá trị là một chuỗi hoặc một mảng các phần tử chuỗi. Một bộ sưu tập chỉ có thể có một chỉ mục tìm kiếm văn bản, nhưng chỉ mục đó có thể bao gồm nhiều trường.