Quản Trị Mạng - Trong
bài viết dưới đây, chúng tôi sẽ chỉ ra điểm khác biệt về hiệu suất hoạt
động của hệ quản trị cơ sở dữ liệu còn khá mới mẻ hiện nay, đó là [You must be registered and logged in to see this link.] và 1 trong những hệ thống phổ biến như SQL Server (MySQL hoặc Oracle). Chủ yếu số liệu được đưa ra ở đây dưới dạng biểu đồ, qua đó chúng ta sẽ dễ dàng hình dung được ưu điểm cũng như nhược điểm của MongoDB cũng như các hệ quản trị database khác.
Biểu đồ gây tranh cãi về việc MongoDB chèn dữ liệu nhanh hơn SQL Server tới hơn 100 lần
Hãy thử tưởng tượng rằng bạn đang thành lập 1 hệ thống website thanh
toán trực tuyến, có liên quan tới nhiều đơn vị dữ liệu khác nhau. Nếu có
1 hệ quản trị cơ sở dữ liệu nào đó hoạt động nhanh hơn SQL Server nhiều
lần, miễn phí, dễ giám sát và xử lý, toàn bộ hệ thống ứng dụng của bạn
với [You must be registered and logged in to see this link.] (tạm dịch là ngôn ngữ truy vấn được tích hợp vào ngôn ngữ lập trình) thì MongoDB chắc chắn sẽ là sự lựa chọn không thể tốt hơn.
Và khi có hệ quản trị cơ sở dữ liệu như vậy thì chúng ta có thể triển
khai và hoạt động trên hầu hết các thiết bị phần cứng phổ biến hiện
nay, chứ không phải là dòng thiết bị máy chủ cao cấp và chuyên dụng.
Đồng nghĩa với việc đó là không cần phải mua hoặc thuê server như trước,
và tất nhiên chi phí ban đầu phải bỏ ra thấp hơn rất nhiều, trong khi
lợi nhuận hoặc doanh thu thì gần như không thay đổi.
Một yếu tố nữa trước khi chúng ta đi vào thử nghiệm, thành viên Kristina Chodorow từ [You must be registered and logged in to see this link.] đã tổ chức 1 cuộc hội thảo về MySQL tại San Francisco với chủ đề [You must be registered and logged in to see this link.]:
Tại đây, Kristina đã miêu tả khá cụ thể về kinh nghiệm triển khai của SourceForge trong quá trình di chuyển cơ sở dữ liệu từ MySql tới MongoDB. Trên nền tảng MySql, SourceForge đã
đạt tới giới hạn của hiệu suất hoạt động với số lượng người dùng nhất
định nào đó. Nhưng với một vài thay đổi trong tùy chọn của MongoDB, hệ thống đã trở nên ổn định hơn rất nhiều.
Mô hình thử nghiệm:
Một mô hình cơ sở dữ liệu chuyên sâu dành cho ứng dụng trực tuyến
được tăng cường để cải thiện khả năng hỗ trợ số lượng người dùng càng
nhiều càng tốt. Sẽ có nhiều tài khoản người dùng từ ứng dụng web trực
tuyến, từ các hàm API và nhiều ứng dụng khác có liên
quan. Về mặt kỹ thuật, người dùng sẽ tương tác trực tiếp với dữ liệu
bằng cách thực hiện câu lệnh truy vấn, mỗi thao tác của họ lại tương ứng
với từng mảnh dữ liệu nhỏ trong toàn bộ hệ thống. Tuy nhiên, thực tế và
lý thuyết lại hoàn toàn khác nhau, mô hình trên chỉ là những gì chúng
ta đang tưởng tượng.
So sánh chức năng Insert:
Đây là điểm khác biệt rõ ràng nhất giữa MongoDB và SQL Server:
Quá trình này được thực hiện bằng cách chèn 50.000 đối tượng độc lập sử dụng NoRM của MongoDB và LINQ tới SQL dành cho SQL Server 2008. Mô hình mẫu như sau:
MongoDB
SQL Server
Sau đó, chạy 5 ứng dụng client vào cơ sở dữ liệu với chức năng insert:
Và nhìn kỹ vào phần thông tin quan trọng nhất hiển thị tại đây, đó là thời gian thực hiện:
MongoDB
SQL Server
Rất dễ dàng, các bạn có thể nhận ra sự khác biệt giữa 2 giây –
MongoDB và 205 giây – SQL Server. Để đảm bảo tính xác thực của kết quả,
chúng tôi tiến hành thực hiện lại sử dụng chương trình dựa trên ADO.NET,
và tốc độ của SQL đã được nâng lên khoảng 1.5 tới 3 lần so với trước
đó. Làm 1 phép tính đơn giản thì MongoDB vẫn nhanh hơn SQL khoảng 30 –
50 lần.
So sánh tốc độ truy vấn:
Tiếp theo, chúng ta chuyển sang quá trình tách lọc dữ liệu từ cùng đối tượng khác nhau trong trường ID của mỗi bản ghi:
Nhìn vào biểu đồ trên, rõ ràng MongoDB vẫn tỏ ra vượt trội hơn hẳn so
với SQL về hiệu suất (khỏang 3 lần). Để tiếp tục, chúng ta hãy chuẩn
sang bảng dữ liệu phức tạo hơn đôi chút với khóa ngoại – [You must be registered and logged in to see this link.] và join:
MongoDB
SQL Server
Kết quả hiển thị tại đây vẫn tương tự như những lần kiểm tra trước đó mà không cần phải join:
Tất cả các phiên kiểm tra đều được thực hiện trên laptop Lenovo T61, hệ điều hành Windows 7 64 bit với bộ vi xử lý 2.8 GHz, sử dụng phiên bản 64 bit của SQL Server 2008 Standard và [You must be registered and logged in to see this link.]. Toàn bộ ví dụ mẫu các bạn có thể download trực tiếp tại [You must be registered and logged in to see this link.] hoặc qua [You must be registered and logged in to see this link.].
bài viết dưới đây, chúng tôi sẽ chỉ ra điểm khác biệt về hiệu suất hoạt
động của hệ quản trị cơ sở dữ liệu còn khá mới mẻ hiện nay, đó là [You must be registered and logged in to see this link.] và 1 trong những hệ thống phổ biến như SQL Server (MySQL hoặc Oracle). Chủ yếu số liệu được đưa ra ở đây dưới dạng biểu đồ, qua đó chúng ta sẽ dễ dàng hình dung được ưu điểm cũng như nhược điểm của MongoDB cũng như các hệ quản trị database khác.
Biểu đồ gây tranh cãi về việc MongoDB chèn dữ liệu nhanh hơn SQL Server tới hơn 100 lần
Hãy thử tưởng tượng rằng bạn đang thành lập 1 hệ thống website thanh
toán trực tuyến, có liên quan tới nhiều đơn vị dữ liệu khác nhau. Nếu có
1 hệ quản trị cơ sở dữ liệu nào đó hoạt động nhanh hơn SQL Server nhiều
lần, miễn phí, dễ giám sát và xử lý, toàn bộ hệ thống ứng dụng của bạn
với [You must be registered and logged in to see this link.] (tạm dịch là ngôn ngữ truy vấn được tích hợp vào ngôn ngữ lập trình) thì MongoDB chắc chắn sẽ là sự lựa chọn không thể tốt hơn.
Và khi có hệ quản trị cơ sở dữ liệu như vậy thì chúng ta có thể triển
khai và hoạt động trên hầu hết các thiết bị phần cứng phổ biến hiện
nay, chứ không phải là dòng thiết bị máy chủ cao cấp và chuyên dụng.
Đồng nghĩa với việc đó là không cần phải mua hoặc thuê server như trước,
và tất nhiên chi phí ban đầu phải bỏ ra thấp hơn rất nhiều, trong khi
lợi nhuận hoặc doanh thu thì gần như không thay đổi.
Một yếu tố nữa trước khi chúng ta đi vào thử nghiệm, thành viên Kristina Chodorow từ [You must be registered and logged in to see this link.] đã tổ chức 1 cuộc hội thảo về MySQL tại San Francisco với chủ đề [You must be registered and logged in to see this link.]:
Tại đây, Kristina đã miêu tả khá cụ thể về kinh nghiệm triển khai của SourceForge trong quá trình di chuyển cơ sở dữ liệu từ MySql tới MongoDB. Trên nền tảng MySql, SourceForge đã
đạt tới giới hạn của hiệu suất hoạt động với số lượng người dùng nhất
định nào đó. Nhưng với một vài thay đổi trong tùy chọn của MongoDB, hệ thống đã trở nên ổn định hơn rất nhiều.
Mô hình thử nghiệm:
Một mô hình cơ sở dữ liệu chuyên sâu dành cho ứng dụng trực tuyến
được tăng cường để cải thiện khả năng hỗ trợ số lượng người dùng càng
nhiều càng tốt. Sẽ có nhiều tài khoản người dùng từ ứng dụng web trực
tuyến, từ các hàm API và nhiều ứng dụng khác có liên
quan. Về mặt kỹ thuật, người dùng sẽ tương tác trực tiếp với dữ liệu
bằng cách thực hiện câu lệnh truy vấn, mỗi thao tác của họ lại tương ứng
với từng mảnh dữ liệu nhỏ trong toàn bộ hệ thống. Tuy nhiên, thực tế và
lý thuyết lại hoàn toàn khác nhau, mô hình trên chỉ là những gì chúng
ta đang tưởng tượng.
So sánh chức năng Insert:
Đây là điểm khác biệt rõ ràng nhất giữa MongoDB và SQL Server:
Quá trình này được thực hiện bằng cách chèn 50.000 đối tượng độc lập sử dụng NoRM của MongoDB và LINQ tới SQL dành cho SQL Server 2008. Mô hình mẫu như sau:
MongoDB
SQL Server
Sau đó, chạy 5 ứng dụng client vào cơ sở dữ liệu với chức năng insert:
[You must be registered and logged in to see this link.]
MongoDB
[You must be registered and logged in to see this link.]
SQL Server
MongoDB
[You must be registered and logged in to see this link.]
SQL Server
Và nhìn kỹ vào phần thông tin quan trọng nhất hiển thị tại đây, đó là thời gian thực hiện:
MongoDB
SQL Server
Rất dễ dàng, các bạn có thể nhận ra sự khác biệt giữa 2 giây –
MongoDB và 205 giây – SQL Server. Để đảm bảo tính xác thực của kết quả,
chúng tôi tiến hành thực hiện lại sử dụng chương trình dựa trên ADO.NET,
và tốc độ của SQL đã được nâng lên khoảng 1.5 tới 3 lần so với trước
đó. Làm 1 phép tính đơn giản thì MongoDB vẫn nhanh hơn SQL khoảng 30 –
50 lần.
So sánh tốc độ truy vấn:
Tiếp theo, chúng ta chuyển sang quá trình tách lọc dữ liệu từ cùng đối tượng khác nhau trong trường ID của mỗi bản ghi:
Nhìn vào biểu đồ trên, rõ ràng MongoDB vẫn tỏ ra vượt trội hơn hẳn so
với SQL về hiệu suất (khỏang 3 lần). Để tiếp tục, chúng ta hãy chuẩn
sang bảng dữ liệu phức tạo hơn đôi chút với khóa ngoại – [You must be registered and logged in to see this link.] và join:
MongoDB
SQL Server
Kết quả hiển thị tại đây vẫn tương tự như những lần kiểm tra trước đó mà không cần phải join:
Tất cả các phiên kiểm tra đều được thực hiện trên laptop Lenovo T61, hệ điều hành Windows 7 64 bit với bộ vi xử lý 2.8 GHz, sử dụng phiên bản 64 bit của SQL Server 2008 Standard và [You must be registered and logged in to see this link.]. Toàn bộ ví dụ mẫu các bạn có thể download trực tiếp tại [You must be registered and logged in to see this link.] hoặc qua [You must be registered and logged in to see this link.].