2011-02-07 36 views
8

tôi chỉ nhập khẩu Mysql cơ sở dữ liệu của tôi (kích thước 2,8 Mio) in new Mongo cơ sở dữ liệu tôi với kịch bản php rất đơn giản tôi xây dựng, nhập khẩu là ok mà không có lỗi nhưng khi tôi nhìn Mongo cơ sở dữ liệu của tôi (với RockMongo) tôi có thể thấy điều này: Kích thước dữ liệu 8.01m, Dung lượng lưu trữ 13.7m.Có kích thước bình thường cho MongoDB không?

MongoDB lớn hơn Mysql với cùng một lượng dữ liệu, điều này có bình thường không?

Cảm ơn sự giúp đỡ của bạn và xin lỗi vì tiếng anh của tôi.

+2

8.01/2.8 = 2.86x không 10x –

Trả lời

13

Có, dữ liệu "giống hệt" sẽ chiếm nhiều không gian hơn trong mongodb. Có một vài điều bạn cần phải tính đến:

1) tài liệu _id được lưu trữ cho mỗi tài liệu (trừ khi bạn chỉ định giá trị riêng của mình cho điều đó) là 12 byte cho mỗi tài liệu
2) bạn đang lưu trữ cho mỗi cặp khóa-giá trị trong mỗi tài liệu, trong khi trong MySql, tên cột không được lưu trữ cho mỗi hàng duy nhất, do đó bạn có thêm chi phí trong tài liệu mongodb của mình. Một cách để giảm điều này là sử dụng tên khóa rút gọn ("tên cột") trong tài liệu của bạn
3) mongodb tự động thêm đệm để cho phép tài liệu phát triển

Trong các thử nghiệm tương tự, tải dữ liệu từ SQL Server sang MongoDB, với rút ngắn 2 tên khóa tài liệu ký tự thay vì tên đầy đủ theo SQL Server, tôi thấy khoảng 25-30% không gian thừa được sử dụng trong MongoDB.

+0

Oh ok, tôi đã nghĩ về "1" (_id) nhưng không phải về "2", vui mừng với tai rằng mọi thứ đều ổn, cảm ơn bạn rất nhiều :) – Tahola

Các vấn đề liên quan