Chỉ mục MongoDB ✅ Chi Tiết
Kinh Nghiệm Hướng dẫn Chỉ mục MongoDB 2022
Hoàng Thị Hương đang tìm kiếm từ khóa Chỉ mục MongoDB được Cập Nhật vào lúc : 2022-12-17 00:25:09 . Với phương châm chia sẻ Thủ Thuật về trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi tham khảo Post vẫn ko hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Admin lý giải và hướng dẫn lại nha.Các chỉ mục đáp ứng cho những người dân tiêu dùng một cách hiệu suất cao để truy vấn tài liệu. Khi truy vấn tài liệu không còn chỉ mục, truy vấn sẽ phải tìm kiếm tất cả những bản ghi trong cơ sở tài liệu để tìm tài liệu khớp với truy vấn
Nội dung chính Show- Chỉ mục trong MongoDB là gì?Tạo chỉ mụcTìm chỉ mụcGiảm chỉ sốCác loại chỉ mục MongoDB phổ biếnChỉ mục trường đơnchỉ số hợp chấtchỉ mục đa phímCác loại chỉ mục MongoDB khácchỉ mục không khí địa lýmục lục văn bảnchỉ số bămThuộc tính chỉ mục MongoDBchỉ số thưa thớtchỉ mục một phầnchỉ mục duy nhấtTóm tắt chỉ mụcChỉ mục MongoDB là gì?Tại sao những chỉ mục được sử dụng trong MongoDB?Chỉ mục được triển khai ra làm sao trong MongoDB?Làm cách nào để lấy chỉ mục trong MongoDB?
Trong MongoDB, truy vấn không còn chỉ mục được gọi là quét bộ sưu tập. Quá trình quét bộ sưu tập sẽ
- Dẫn đến tắc nghẽn hiệu suất khác nhauLàm chậm đáng kể ứng dụng của bạn
May mắn thay, việc sử dụng những chỉ mục sẽ khắc phục cả hai vấn đề này. Bằng cách số lượng giới hạn số lượng tài liệu được truy vấn, bạn sẽ tăng hiệu suất tổng thể của ứng dụng
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn qua nhiều chủng loại chỉ mục rất khác nhau và chỉ cho bạn cách tạo và quản lý chỉ mục trong MongoDB
(Bài viết này là một phần của Hướng dẫn MongoDB của chúng tôi. Sử dụng menu bên phải để điều hướng. )
Chỉ mục trong MongoDB là gì?
Chỉ mục là cấu trúc tài liệu đặc biệt tàng trữ một phần nhỏ tài liệu của Bộ sưu tập theo cách hoàn toàn có thể truy vấn thuận tiện và đơn giản
Nói một cách đơn giản nhất, những chỉ mục tàng trữ những giá trị của những trường được lập chỉ mục bên phía ngoài bảng hoặc bộ sưu tập và theo dõi vị trí của chúng trong đĩa. Các giá trị này được sử dụng để sắp xếp những trường được lập chỉ mục. Thứ tự này giúp thực hiện khớp đẳng thức và hoạt động và sinh hoạt giải trí truy vấn nhờ vào phạm vi một cách hiệu suất cao. Trong MongoDB, những chỉ mục được xác định ở cấp bộ sưu tập và những 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 đều được tương hỗ
Đối với hướng dẫn này, chúng tôi sẽ sử dụng tập tài liệu sau để minh họa hiệu suất cao lập chỉ mục của MongoDB
use students db.createCollection("studentgrades") db.studentgrades.insertMany( [ name: "Barry", subject: "Maths", score: 92, name: "Kent", subject: "Physics", score: 87, name: "Harry", subject: "Maths", score: 99, notes: "Exceptional Performance", name: "Alex", subject: "Literature", score: 78, name: "Tom", subject: "History", score: 65, notes: "Adequate" ] ) db.studentgrades.find(,_id:0)Kết quả

Tạo chỉ mục
Khi tạo tài liệu trong một bộ sưu tập, MongoDB sẽ tạo một chỉ mục duy nhất bằng phương pháp sử dụng trường _id. MongoDB gọi đây là Chỉ mục _id mặc định. Chỉ mục mặc định này sẽ không thể bị xóa khỏi bộ sưu tập
Khi truy vấn tập tài liệu thử nghiệm, bạn hoàn toàn có thể thấy trường _id sẽ được sử dụng làm chỉ mục mặc định
db.studentgrades.find().pretty()Kết quả

Bây giờ hãy tạo một chỉ mục. Để làm điều đó, bạn hoàn toàn có thể sử dụng phương thức createIndex theo cú pháp sau
db.Khi tạo chỉ mục, bạn cần xác định trường sẽ được lập chỉ mục và vị trí hướng của phím (1 hoặc -1) để biểu thị thứ tự tăng dần hoặc giảm dần
Một điều khác cần lưu ý là tên gọi chỉ mục. Theo mặc định, MongoDB sẽ tạo tên chỉ mục bằng phương pháp nối những khóa được lập chỉ mục với vị trí hướng của từng khóa trong chỉ mục bằng phương pháp sử dụng dấu gạch dưới làm dấu phân cách. Ví dụ. Tên. 1 sẽ được tạo với tên_1
Tùy chọn tốt nhất là sử dụng tùy chọn tên để xác định tên chỉ mục tùy chỉnh khi tạo chỉ mục. Không thể đổi tên chỉ mục sau khi tạo. (Cách duy nhất để đổi tên một chỉ mục là trước tiên bỏ chỉ mục đó, và tạo lại nó bằng tên mong ước. )
Hãy tạo một chỉ mục bằng phương pháp sử dụng trường tên trong bộ sưu tập studentgrades và đặt tên nó là chỉ mục tên sinh viên
db.studentgrades.createIndex( name: 1, name: "student name index" )Kết quả

Tìm chỉ mục
Bạn hoàn toàn có thể tìm thấy tất cả những chỉ mục có sẵn trong bộ sưu tập MongoDB bằng phương pháp sử dụng phương thức getIndexes. Điều này sẽ trả về tất cả những chỉ mục trong một bộ sưu tập rõ ràng
db.Hãy xem tất cả những chỉ mục trong bộ sưu tập studentgrades bằng lệnh sau
db.studentgrades.getIndexes()Kết quả

Đầu ra chứa chỉ mục _id mặc định và chỉ mục tên sinh viên do người tiêu dùng tạo chỉ mục
Giảm chỉ số
Để xóa một chỉ mục khỏi bộ sưu tập, hãy sử dụng phương thức dropIndex trong khi chỉ định tên chỉ mục sẽ bị xóa
db.Hãy xóa chỉ mục do người tiêu dùng tạo với tên chỉ mục tên sinh viên chỉ mục, như hình phía dưới
db.studentgrades.dropIndex("student name index")Kết quả

Bạn cũng hoàn toàn có thể sử dụng giá trị trường chỉ mục để xóa chỉ mục không mang tên xác định
________số 8Kết quả

Lệnh dropIndexes cũng hoàn toàn có thể vô hiệu tất cả những chỉ mục ngoại trừ chỉ mục _id mặc định
db.studentgrades.dropIndexes()Kết quả

Các loại chỉ mục MongoDB phổ biến
MongoDB đáp ứng nhiều chủng loại chỉ mục rất khác nhau hoàn toàn có thể được sử dụng theo nhu yếu của người tiêu dùng. Dưới đây là những cái phổ biến nhất
- Chỉ mục trường đơnchỉ số hợp chấtchỉ mục đa phím
Chỉ mục trường đơn
Các chỉ mục do người tiêu dùng xác định này sử dụng một trường duy nhất trong tài liệu để tạo chỉ mục theo thứ tự sắp xếp tăng dần hoặc giảm dần (1 hoặc -1). Trong một chỉ mục trường duy nhất, thứ tự sắp xếp của khóa chỉ mục không còn tác động vì MongoDB hoàn toàn có thể duyệt qua chỉ mục theo một trong hai hướng
db.studentgrades.find().pretty()0Kết quả

Chỉ mục trên sẽ sắp xếp tài liệu theo thứ tự tăng dần bằng phương pháp sử dụng trường tên. Bạn hoàn toàn có thể sử dụng phương thức sort() để xem tài liệu sẽ được màn biểu diễn ra làm sao trong chỉ mục
db.studentgrades.find().pretty()1Kết quả

chỉ số hợp chất
Bạn hoàn toàn có thể sử dụng nhiều trường trong tài liệu MongoDB để tạo chỉ mục phức hợp. Loại chỉ mục này sẽ sử dụng trường đầu tiên để sắp xếp ban đầu và sau đó sắp xếp theo những trường trước đó
db.studentgrades.find().pretty()2
Trong chỉ số phức hợp ở trên, MongoDB sẽ
- Đầu tiên sắp xếp theo nghành chủ đềSau đó, trong mỗi giá trị chủ đề, hãy sắp xếp theo Lever
Chỉ mục sẽ tạo ra một cấu trúc tài liệu tương tự như sau
db.studentgrades.find().pretty()3Kết quả

chỉ mục đa phím
MongoDB tương hỗ lập chỉ mục những trường mảng. Khi bạn tạo một chỉ mục cho một trường chứa một mảng, MongoDB sẽ tạo những mục nhập chỉ mục riêng cho mọi phần tử trong mảng. Các chỉ mục đa khóa này được cho phép người tiêu dùng truy vấn tài liệu bằng phương pháp sử dụng những phần tử trong mảng
MongoDB sẽ tự động tạo chỉ mục đa khóa khi gặp trường mảng mà không yêu cầu người tiêu dùng xác định rõ ràng loại đa khóa
Hãy tạo tập tài liệu mới chứa trường mảng để minh họa việc tạo chỉ mục đa khóa
db.studentgrades.find().pretty()4Kết quả

Bây giờ, hãy tạo một chỉ mục bằng phương pháp sử dụng trường điểm
db.studentgrades.find().pretty()5Kết quả

Đoạn mã trên sẽ tự động tạo một Multikey index trong MongoDB. Khi bạn truy vấn tài liệu bằng trường mảng (điểm), MongoDB sẽ tìm kiếm phần tử đầu tiên của mảng được xác định trong phương thức find() và sau đó tìm kiếm toàn bộ truy vấn phù hợp
Chẳng hạn, hãy xem xét truy vấn tìm kiếm sau
db.studentgrades.find().pretty()6Ban đầu, MongoDB sẽ sử dụng chỉ mục đa khóa để tìm kiếm tài liệu trong đó mảng điểm chứa phần tử đầu tiên (80) ở bất kỳ vị trí nào. Sau đó, trong những tài liệu được chọn đó, những tài liệu có tất cả những thành phần phù hợp sẽ được chọn

Các loại chỉ mục MongoDB khác
Ngoài nhiều chủng loại Chỉ mục phổ biến được đề cập ở trên, MongoDB cũng đáp ứng một số trong những loại chỉ mục đặc biệt cho những trường hợp sử dụng được nhắm tiềm năng
- chỉ số không khí địa lýchỉ số kiểm trachỉ số băm
chỉ mục không khí địa lý
MongoDB đáp ứng hai loại chỉ mục để tăng hiệu suất cao của những truy vấn cơ sở tài liệu khi xử lý tài liệu tọa độ không khí địa lý
- Các chỉ mục 2d sử dụng hình học phẳng dành riêng cho những cặp tọa độ thừa kế được sử dụng trong MongoDB 2. 2 trở về trướcChỉ mục 2dsphere sử dụng hình cầu
mục lục văn bản
Loại chỉ mục văn bản được cho phép bạn tìm kiếm nội dung chuỗi trong bộ sưu tập
db.studentgrades.find().pretty()8chỉ số băm
Loại chỉ mục MongoDB Hashed được sử dụng để đáp ứng tương hỗ cho hiệu suất cao. Điều này sẽ lập chỉ mục giá trị băm của trường được chỉ định
db.studentgrades.find().pretty()9Thuộc tính chỉ mục MongoDB
Bạn hoàn toàn có thể nâng cao hiệu suất cao của một chỉ mục hơn thế nữa bằng phương pháp sử dụng những thuộc tính chỉ mục. Trong phần này, bạn sẽ biết những thuộc tính chỉ mục thường được sử dụng này
- chỉ số thưa thớtchỉ mục một phầnchỉ mục duy nhất
chỉ số thưa thớt
Thuộc tính thưa MongoDB được cho phép những chỉ mục bỏ qua những tài liệu lập chỉ mục trong một bộ sưu tập nếu trường được lập chỉ mục không còn sẵn trong tài liệu và tạo một chỉ mục chỉ chứa những tài liệu chứa trường được lập chỉ mục
db.Kết quả

Trong bộ sưu tập studentgrades trước, nếu bạn tạo một chỉ mục bằng phương pháp sử dụng trường ghi chú, nó sẽ chỉ lập chỉ mục cho hai tài liệu vì trường ghi chú chỉ có trong hai tài liệu
chỉ mục một phần
Chức năng chỉ mục một phần được cho phép người tiêu dùng tạo những chỉ mục phù phù phù hợp với một điều kiện lọc nhất định. Các chỉ mục một phần sử dụng tùy chọn partialFilterExpression để chỉ định điều kiện lọc
db.Kết quả

Đoạn mã trên sẽ tạo một chỉ mục cho trường tên nhưng sẽ chỉ gồm có những tài liệu trong đó giá trị của trường điểm to hơn hoặc bằng 90
chỉ mục duy nhất
Thuộc tính duy nhất được cho phép người tiêu dùng tạo chỉ mục MongoDB chỉ gồm có những giá trị duy nhất. Điều này sẽ
- Từ chối mọi giá trị trùng lặp trong trường được lập chỉ mụcGiới hạn chỉ mục cho những tài liệu chứa những giá trị duy nhất
Kết quả

Chỉ mục được tạo ở trên sẽ số lượng giới hạn việc lập chỉ mục cho những tài liệu có mức giá trị duy nhất trong trường tên
Tóm tắt chỉ mục
Điều đó kết thúc hướng dẫn lập chỉ mục MongoDB này. Bạn đã học cách tạo, tìm và vô hiệu những chỉ mục, sử dụng nhiều chủng loại chỉ mục rất khác nhau và tạo những chỉ mục phức tạp. Các chỉ mục này sau đó hoàn toàn có thể được sử dụng để nâng cao hơn thế nữa hiệu suất cao của cơ sở tài liệu MongoDB, tăng hiệu suất của những ứng dụng sử dụng những truy vấn cơ sở tài liệu nhanh