Tạo chỉ mục mongodb nodejs

Vì vậy, cơ sở dữ liệu NoSQL là lựa chọn cực kỳ thích hợp cho nhiều ứng dụng hiện đại, ví dụ như di động, web và trò chơi. Bởi vì tính linh hoạt, cực kỳ thiết thực và có khả năng thay đổi quy mô và hiệu năng cao để mang đến cho người dùng trải nghiệm tuyệt vời

MongoDB chúng tôi tìm thấy hiệu trên chính là một hệ thống quản trị cơ sở dữ liệu thuộc NoSQL. Cũng giống như MySQL, SQLServer là hệ thống quản trị cơ sở dữ liệu của SQL

Một vài điểm khác biệt so với cơ sở dữ liệu quan hệ là. at database quan he use the table to save data, MongoDB used khái niệm là bộ sưu tập. Là nơi định nghĩa các cột. With each row call is document. Các bộ sưu tập trong MongoDB được tái tạo cấu trúc rất linh hoạt, cho phép lưu trữ dữ liệu không cần tuần theo một cấu trúc nhất định. Thông tin liên quan được lưu trữ giống nhau để truy vấn nhanh chóng

Ví dụ

Dưới đây là hình ảnh minh họa cơ sở dữ liệu có khóa kéo bộ sưu tập. Trong bộ sưu tập zip có rất nhiều tài liệu

Hướng dẫn index mongodb

Type data same json must not any. Điều chúng ta thường thấy trong cơ sở dữ liệu quan hệ là sẽ tạo một bảng để lưu Thành phố riêng phải không nào. MongoDB thì những dữ liệu nào liên quan đến nó sẽ gom chung vào một bộ sưu tập. Đừng lo sợ về bộ nhớ vì nó có tính mở rộng rất tuyệt vời

2. Các chỉ mục trong mongoDB

Thường khi chúng ta làm việc với dữ liệu không quá lớn thì chúng ta không quan tâm đến thời gian chúng ta thực thi. Và thời gian của họ cũng không đáng kể. Tuy nhiên đối với dữ liệu tương đối lớn. Hàng ngàn kỷ lục trở thành việc quan tâm đến thời gian thực thi là cực kỳ quan trọng. Nó giúp nâng cao hiệu quả của ứng dụng, giúp trải nghiệm của người dùng tốt hơn

Các chỉ mục nó hỗ trợ việc thực hiện các câu lệnh truy vấn một cách hiệu quả. If not have the Indexes. Nó phải thực hiện việc quét qua tất cả các tài liệu trong bộ sưu tập để chọn những tài liệu phù hợp với câu lệnh truy vấn. Nếu như có các chỉ mục thích hợp cho câu lệnh truy vấn thì MongoDB này có thể sử dụng chỉ mục để giới hạn số lượng tài liệu cần kiểm tra. Cụ thể mongoDB sẽ chia nhỏ tài liệu của chúng ta tương tự như thế này

Hướng dẫn index mongodb

Việc tìm kiếm sẽ nhanh hơn nếu được phân vùng như thế này

Vậy thì mongoDB có những loại Index nào thường dùng. Chúng ta cùng đến phần tiếp theo để tìm hiểu chi tiết

3. Các loại chỉ mục trong mongoDB

Trước tiên, bạn cần cài đặt mongoDB vào máy của mình và nhập dữ liệu bên dưới vào. You auto search and doing theo nhé

Hướng dẫn index mongodb

Ví dụ dữ liệu của mình ở đây mình lấy từ trang của mongoDB. tập dữ liệu

Sử dụng công cụ Robo-3T để thao tác với dữ liệu của chúng tôi

1. Chỉ mục trường đơn

Chúng ta thực hiện một lệnh đơn giản để xem chi tiết công việc tìm kiếm những thành phố nào có dân số bằng 4546

db. khóa kéo. tìm ({"pop". 4546}). giải thích ("executionStats")

Hướng dẫn index mongodb

Cùng phân tích kết quả. "nTrả lại". 2 => tìm được tài liệu. "thời gian thực thiMillis". 16 => thời gian thực thi là 16 mili giây. "totalDocsExamined". 29353 => số tài liệu, mongoDB phải quét qua

Bây giờ ta thực hiện đánh số cho pop

db. Hồ sơ. tạo Index( { điểm. 1 } )

Hướng dẫn index mongodb

Bây giờ index đã tăng lên 2, mọi bộ sưu tập của chúng ta khi tạo nó sẽ có 1 index mặc định cho _id nhé các bạn

Bây giờ hãy xem kết quả sau khi đã đánh số chỉ số thì như thế nào

Hướng dẫn index mongodb

Kết quả thật sự ấn tượng phải không nào. Kết quả chưa đến 1 mili giây để tìm kiếm và chỉ quét qua đúng 2 bản ghi

2. chỉ số hợp chất

Compound indexes cho phép ta đánh dấu chỉ mục cho nhiều trường. Nào xem ví dụ cho dễ hiểu hơn (mình đã xóa index ở phần trước rồi)

Tìm những thành phố thuộc tiểu bang MA và dân số bé hơn hoặc bằng 21905. lấy 30 phần tử từ vị trí 30 của kết quả tìm được

Hướng dẫn index mongodb

Please mount index for it

db. khóa kéo. createIndex({"trạng thái". 1, "bốp". 1})

Và hãy cùng xem kết quả

Hướng dẫn index mongodb

Kết quả thật tuyệt vời phải không nào

3. Chỉ mục duy nhất

Unique thì chúng ta khá quên thuộc, như đã nói ở phần trước, mỗi một tài liệu trong bộ sưu tập khi sinh ra thì mặc định có một id riêng biệt, sắp xếp theo chiều tăng dần. Vì vậy hãy xem nó như thế nào

Hướng dẫn index mongodb

Quả đúng như vậy "id". 1. 1 sắp xếp theo chiều tăng, lùi lại -1 thì sắp theo chiều giảm

4. Chỉ mục thưa thớt

Với những trường hợp bạn muốn tìm những tài liệu có trường cần tìm không trống, bạn hay tự kiểm tra xem trường đó của tài liệu tồn tại với giá trị không phải là bất kỳ. Với Index, bạn có thể làm điều đó một cách rất nhanh chóng và hiệu quả. Bằng cách đánh chỉ mục (chỉ mục) cho trường bạn đang xem xét đó. Việc làm còn lại là đây

db. CỦA BẠN_COLLECTION. tìm thấy(). sắp xếp ({"FIELD_NEED_SORT_OR_NOT"}). gợi ý({FIELD_NEED_HINT. 1})

5. Chỉ số TTL

TTL là từ viết tắt của Time To Live. Hãy thử tưởng tượng ứng dụng của chúng ta, chúng ta muốn cho người dùng dùng thử ứng dụng nhưng muốn đăng nhập vào ứng dụng chúng ta cần phải có tài khoản và mật khẩu. Do đó khi tạo tài khoản cho người dùng thử lại đã sinh ra rác sau. Thì rất có thể mongoDB cung cấp cho chúng ta TTL Indexes để giúp cho trường như đã nêu trên

db. Nhật ký sự kiện. tạo Index( { "lastModifiedDate". 1 }, { hết hạnSau giây. 3600 } )

Ở đây chúng ta đã đặt chỉ mục cho trường lastModifiedDate. Tài liệu sau khi được tạo sẽ có thời gian sống là 3600s. Một lưu ý. that is field lastModifiedDate must have the type is Date

6. Chỉ mục văn bản

Thông thường một ứng dụng sẽ không thể thiếu phần tìm kiếm phải không các bạn (không phải tất cả nha các bạn

Hướng dẫn index mongodb

Hướng dẫn index mongodb

). Đầu tiên chúng ta tạo chỉ mục cho trường cần tìm kiếm.
db.zips.createIndex(
  {
    city: "text",
    state: "text"
  }
)

Việc tạo chỉ mục đã thành công, vậy công việc tìm kiếm thì như thế nào nhỉ?

Hướng dẫn index mongodb

db. khóa kéo. tìm({$text. {$search. "HADLEY"}). khá()

Hướng dẫn index mongodb

Về phần chỉ mục văn bản này khá nhiều. Nếu bạn quan tâm hãy tìm hiểu thêm về set ngôn ngữ, cũng như tìm kiếm không phân biệt hoa thường hay tìm kiếm như LIKE trong SQL nữa nhé

Hướng dẫn index mongodb

4. Kết quả

Trên đây mình đã trình bày về một số chỉ mục trong mongo mình từng thử qua, ngoài ra còn một vài chỉ mục hữu dụng khác nữa. Không phải chỉ có chừng mực này như thế nào đâu nhé. Việc thêm chỉ mục sẽ tăng tốc độ tìm kiếm. Nhưng bạn hay cân nhắc việc thêm chỉ mục vào cơ sở dữ liệu vì khi chèn một dữ liệu mới vào công việc tính toán và tìm vị trí phù hợp cũng tốn kém khá nhiều thời gian. Vì vậy cần phải có sự lựa chọn phù hợp với từng chỉ mục trong ứng dụng của chúng ta. Mong rằng với sự chia sẻ của mình thì các bạn sẽ phát triển ứng dụng của mình tốt hơn