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 range query trên dữ liệu lớn

    Thực hiện các bước sau: • Truy vấn dữ liệu thời tiết có nhiệt độ không khí âm: airTemperature.value < 0 (trong dữ liệu mẫu, nhiệt độ nằm ở trường airTemperature.value; không có trường temp) • Chạy truy vấn với explain("executionStats") khi chưa có index • Tạo index tăng dần cho airTemperature.value và in tên index • Chạy lại truy vấn và so sánh số document được examine

    Lưu ý: kết quả explain đầy đủ chứa thông tin máy chủ và thời gian chạy (thay đổi mỗi lần chạy) nên không in toàn bộ. Code khởi tạo có sẵn hàm hỗ trợ cacStage(ketQuaExplain) trả về mảng tên các stage của winning plan (từ ngoài vào trong, ví dụ [ 'FETCH', 'IXSCAN' ]). Chỉ cần điền vào các chỗ TODO và giữ nguyên các lệnh print; chương trình không được in thêm gì khác. Không cần lệnh use.

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

      Collection data (dữ liệu mẫu sample_weatherdata.data) đã được nạp sẵn.

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

      In đúng 9 dòng, theo thứ tự:

      • Dòng 1–4: kết quả explain trước khi có index: mảng stage, nReturned, totalKeysExamined, totalDocsExamined
      • Dòng 5: tên index vừa tạo (kết quả createIndex)
      • Dòng 6–9: kết quả explain sau khi có index: mảng stage, nReturned, totalKeysExamined, totalDocsExamined

      Ví dụ định dạng (không phải đáp án):

      [ 'COLLSCAN' ]
      50
      0
      1000
      a.b_1
      [ 'FETCH', 'IXSCAN' ]
      50
      50
      50
      

    Ví dụ:

    Đầu vào:

    sample_weatherdata.data

    Đầu ra:

    [ 'COLLSCAN' ]
    656
    0
    10000
    airTemperature.value_1
    [ 'FETCH', 'IXSCAN' ]
    656
    656
    656

    Chủ đề

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

    Đang tải editor...