Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: Index cho truy vấn nhiều điều kiện phức hợp

    Trong collection transactions, mỗi document là một nhóm giao dịch của một tài khoản; số lượng amount của từng giao dịch nằm trong mảng transactions (truy cập bằng "transactions.amount").

    Thực hiện các bước sau: • Phân tích truy vấn: tìm các document có account_id bằng 443178 và có giao dịch với transactions.amount > 1000 • Tạo compound index phù hợp cho truy vấn trên (phương án 1; mọi trường tăng dần, 1) — gợi ý: quy tắc ESR (Equality → Sort → Range) • Chạy truy vấn với explain("executionStats") • Kiểm tra thứ tự field trong index có ảnh hưởng thế nào: xoá index trên, tạo index cùng hai trường nhưng đảo ngược thứ tự (phương án 2), chạy lại explain("executionStats") và so sánh

    Điền vào các chỗ TODO trong template, giữ nguyên các lệnh print; nhận xét ghi bằng comment //.

    Không cần lệnh use: collection đã có sẵn trong database hiện tại. Không in toàn bộ kết quả explain() (có chứa thời gian chạy, thông tin máy chủ thay đổi mỗi lần chạy) — chỉ in đúng các giá trị mà phần Output yêu cầu.

    • Định dạng đầu vào:

      Collection transactions (dữ liệu mẫu sample_analytics.transactions) đã được nạp sẵn vào database hiện tại.

    • Định dạng đầu ra:

      Đúng 9 dòng (theo các lệnh trong template):

      1. Tên index phương án 1 2–4. nReturned, totalKeysExamined, totalDocsExamined với phương án 1
      2. Kết quả dropIndex: { nIndexesWas: 2, ok: 1 }
      3. Tên index phương án 2 7–9. nReturned, totalKeysExamined, totalDocsExamined với phương án 2

    Ví dụ:

    Đầu vào:

    sample_analytics.transactions

    Đầu ra:

    account_id_1_transactions.amount_1
    1
    63
    1
    { nIndexesWas: 2, ok: 1 }
    transactions.amount_1_account_id_1
    1
    17756
    1

    Chủ đề

    🗄️ Cơ sở dữ liệuMongodbIndexTất cả môn học

    Đang tải editor...