2010-07-20 36 views
12

Giá đắt hơn để làm về tài nguyên và hiệu quả, Hoạt động đọc/ghi tệp hoặc Thao tác đọc/ghi cơ sở dữ liệuFile Read/Write vs Database Đọc/Ghi

+1

@OP, bạn có thể cho chúng tôi biết một chút ngữ cảnh không? –

Trả lời

10

Tôi bước đầu nói cơ sở dữ liệu đọc/ghi , tay xuống, vì nó sẽ bao gồm các tập tin cần thiết io trên đầu trang của các chi phí DB, nhưng sau đó nhận ra nó không phải là đơn giản. Nếu bạn có toàn bộ DB của bạn được nạp vào bộ nhớ, lần đọc sẽ gần như tức thì vì không có tệp IO nào liên quan.

Ghi chú nói chung sẽ nhanh hơn, vì động cơ DB không phải chờ tệp IO hoàn thành trước khi trở về vì chúng có thể thực hiện phương pháp "viết lười".

Một cơ sở dữ liệu kém được điều chỉnh, mặt khác, sẽ có các đơn đặt hàng có cường độ chậm hơn bất kỳ tệp nào dựa trên IO. DB điều chỉnh vấn đề. Rất nhiều.

+0

Hơn thế nữa, có thể sẽ mất nhiều dữ liệu bạn cần bằng cách sử dụng tệp đơn giản, mà không cần tự mình thực hiện cơ sở dữ liệu, và sử dụng cơ sở dữ liệu hàng trăm người đã dành nhiều năm để phát triển dữ liệu nhanh. – nos

3

Đây là loại câu hỏi được tải. Chúng ta đang nói về kích thước nào? Gigabyte? Ngoài ra, loại và kích thước của DB? Tôi thường sử dụng kết hợp. Bạn có muốn kiểm soát bất kỳ mức độ toàn vẹn cấp dữ liệu nào không? Nếu vậy, bạn có thể muốn để điều đó cho DB nếu không bạn phải kiểm soát tất cả những gì ở cấp ứng dụng.
Có quá nhiều yếu tố để đưa ra quyết định tốt về vấn đề này. Ví dụ, khi tôi tạo dữ liệu tạm thời mà tôi không muốn tiếp tục, tôi sử dụng File, nhưng nếu tôi đang sử dụng dữ liệu tôi muốn lưu giữ hoặc sao lưu, thì tôi sử dụng một DB.
Điều này kết hợp với kiến ​​trúc là quan trọng. Nếu phần cứng, cấp phép hoặc cơ sở là một vấn đề thì có thể bạn không cần cơ sở hạ tầng của máy chủ DB, nhưng nếu bạn có tài nguyên thì việc thêm một lớp DB có thể là lựa chọn đúng đắn.

0

Không có câu trả lời đơn giản. Với bất kỳ cơ sở dữ liệu nào, bạn có toàn bộ chi phí cho việc chạy nó mọi lúc. Nhưng sau đó khi bạn truy cập nó thường là nhanh hơn nhiều so với truy cập một tập tin. Nếu bạn đang nói về một số truy cập, bạn sẽ không nhận thấy nhiều sự khác biệt. Nhưng khi nó lên đến hàng trăm, hàng nghìn và hàng triệu lượt truy cập mỗi phút, cơ sở dữ liệu sẽ nhanh hơn nhiều. Và như Tim đã lưu ý ở trên, một cơ sở dữ liệu kém được điều chỉnh có thể chậm hơn nhiều so với việc truy cập một tệp phẳng.

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