Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Tối ưu hóa MongoDB nâng cao: Phần 2

Bài viết gốc được xuất bản bởi Tricore: 24 tháng 8, 2017

Trong Phần 1 của loạt bài này, chúng tôi đã chia sẻ một số mẹo sử dụng MongoDB. Trong Phần 2, chúng tôi sẽ đề cập thêm các chủ đề MongoDB bao gồm tối ưu hóa, hiệu suất, tốc độ, lập chỉ mục, thiết kế schema và an toàn dữ liệu.

Mẹo 1: Học cách sử dụng tùy chọn --notablescan trong môi trường phát triển (nhưng không phải production)

Tối ưu hóa MongoDB nâng cao: Phần 2

Nguồn: www.percona.com

MongoDB có tùy chọn --notablescan trả về lỗi khi một truy vấn cần thực hiện quét toàn bảng. Tùy chọn này rất hữu ích trong môi trường phát triển nếu bạn muốn đảm bảo tất cả truy vấn đều đánh vào chỉ mục. Tuy nhiên, chúng tôi không khuyến khích sử dụng trong môi trường production vì nó có thể gây ra vấn đề hiệu suất. Vấn đề là nhiều tác vụ quản trị đơn giản yêu cầu quét bảng. Tùy chọn này cho phép bạn xem danh sách các collection trong cơ sở dữ liệu cần quét toàn bảng.

Mẹo 2: Quản lý tất cả máy chủ và cơ sở dữ liệu từ một shell duy nhất

Mặc định, MongoDB kết nối với localhost:27017. Bạn có thể kết nối đến bất kỳ máy chủ nào khi khởi động bằng cách chạy mongo host:port/database. Bạn cũng có thể kết nối đến nhiều máy chủ hoặc cơ sở dữ liệu trong shell.

Ví dụ, giả sử chúng ta có một ứng dụng sử dụng cả cơ sở dữ liệu của đại lý và nhà phân phối. Với MongoDB, chúng ta có thể chuyển đổi qua lại giữa hai cơ sở dữ liệu trong cùng một shell.

Mẹo 3: Nắm vững JavaScript

Khi bạn sử dụng một ngôn ngữ có shell riêng tuyệt vời, bạn nên quen thuộc với JavaScript®. Ngôn ngữ JavaScript phổ biến בקרב người dùng MongoDB vì nó là cách nhanh nhất và tốt nhất để truy cập thông tin. JavaScript là ngôn ngữ linh hoạt, mạnh mẽ với các tính năng tuyệt vời giúp bạn khai thác tối đa shell.

Mẹo 4: Thực hiện sao lưu tức thì (instant-in-time) của máy chủ

Để sao lưu cơ sở dữ liệu có bật journaling, bạn có thể thực hiện snapshot hệ thống tệp hoặc làm fsync+lock bình thường sau đó dump. Lưu ý rằng bạn không thể chỉ sao chép tất cả tệp mà không có fsync và lock, vì sao chép không phải là thao tác tức thì. Nếu bản sao của tệp nhật ký và bản sao lưu nằm trên các volume khác nhau, thì bản sao lưu có thể trở nên vô nghĩa tại một thời điểm sau.

Mẹo 5: Cố gắng lấy dữ liệu từ một truy vấn duy nhất

Thuật ngữ đơn vị ứng dụng (application unit) được dùng cho một số loại công việc ứng dụng. Một đơn vị ứng dụng về cơ bản là một đơn vị công việc rời rạc mà ứng dụng của bạn thực hiện, có thể liên quan đến truy cập cơ sở dữ liệu. Bạn nên thiết kế schema MongoDB để thực hiện một truy vấn cho mỗi đơn vị ứng dụng.

Nếu bạn có ứng dụng web hoặc di động, bạn có thể coi một đơn vị ứng dụng như một yêu cầu đến backend.

Dưới đây là một số ví dụ khác:

  • Đối với ứng dụng desktop, đơn vị ứng dụng có thể là tương tác người dùng-client.
  • Đối với hệ thống phân tích, đơn vị ứng dụng có thể là tải bảng điều khiển.

Kết luận

MongoDB là một cơ sở dữ liệu nhanh, mạnh mẽ và có khả năng mở rộng cao. Nó hoạt động trên nhiều nền tảng và có nhiều driver ngôn ngữ để sử dụng tối ưu.

MongoDB ngày càng phổ biến. Hiểu rõ cơ bản về MongoDB và cách sử dụng nó tốt là bước đi tuyệt vời cho bất kỳ nhà phát triển nào.

Bạn đang học MongoDB? Hãy chia sẻ trải nghiệm của bạn bằng tab Feedback.