Đánh chỉ mục là gì? Đánh chỉ mục trong MongoDB

Đánh chỉ mục là gì? Đánh chỉ mục trong MongoDB

Đánh chỉ mục là gì? Đánh chỉ mục trong MongoDB

Đánh chỉ mục là gì?

Đánh chỉ mục hay còn gọi là đánh index là việc tách chọn thông tin của dữ liệu thành một cấu trúc nhằm mục đích tăng tốc độ của việc truy xuất dữ liệu.

Ví dụ đơn giản nhất là trang mục lục trong quyển sách. Nó chứa tên chương và số trang tương ứng. Việc đưa tên chương và số trang tương ứng vào mục lục gọi là đánh chỉ mục. Lợi ích của trang mục lục là giúp bạn tìm kiếm nhanh hơn, giả sử bạn muốn tìm chương 5 thì bạn tìm ở trang mục lục sẽ thấy luôn nó ở trang bao nhiêu, còn nếu không có trang mục lục thì bạn phải tìm lần lượt từng trang cho tới khi thấy chương 5 thì thôi, như thế sẽ mất rất nhiều thời gian và dễ bị bỏ sót.

Trong hệ điều hành windows, khi thực hiện tìm kiếm file, thư mục bạn sẽ thấy nó hỏi là có thực hiện index không? Nếu bạn chọn có thì nó sẽ lưu thông tin của các folder, file vào một tệp tin riêng, ví dụ file abc.txt nằm ở C:/data, file xyz.dat ở D:/store. Khi bạn tìm file abc.txt thì nó sẽ tìm trong file index xem file abc.txt nằm ở đâu chứ không phải quét toàn bộ máy tính để tìm.

Có 2 cách đánh chỉ mục: đánh chỉ mục ngay từ lúc insert (khi insert dữ liệu, thông tin sẽ được đưa vào chỉ mục luôn) hoặc đánh chỉ mục lúc tìm kiếm (khi thực hiện tìm kiếm, kiểm tra thông tin và đưa vào chỉ mục)

Đánh chỉ mục trong MongoDB

Trong MongoDB, việc đánh index (đánh chỉ mục) thực hiện ở mức độ collections.

Mặc định trường _id sẽ luôn được đánh index.

Bạn có thể thực hiện đánh index với các trường khác nhau tùy theo nhu cầu.

Ví dụ collection player của bạn chứa thông tin các cầu thủ bóng đá:

{'_id':'1', 'name':'neymar', 'country':'brazil', 'age':25},
{'_id':'2', 'name':'hazard', 'country':'belgium', 'age':25},
{'_id':'3', 'name':'mbappe', 'country':'france', 'age':18},
{'_id':'4', 'name':'modric', 'country':'croatia', 'age':30},
{'_id':'5', 'name':'ronaldo', 'country':'portugal', 'age':33},
{'_id':'6', 'name':'messi', 'country':'argentina', 'age':31},
{'_id':'7', 'name':'icardi', 'country':'argentina', 'age':25},
{'_id':'8', 'name':'griezmann', 'country':'france', 'age':28}

Bạn có thể đánh index theo trường name, age, country…

Giả sử bạn đánh index theo trường country thì mỗi lần thực hiện tìm các cầu thủ theo country sẽ rất nhanh.

Hướng dẫn đánh index trong MongoDB

 

 

Okay, Done!

References:

https://docs.mongodb.com/manual/indexes/

https://www.simplilearn.com/indexing…

stackjava.com