2010-12-29 40 views
7

Thực tiễn tốt nhất để lưu trữ tệp ảnh/văn bản lớn trong máy chủ sql là gì. Baring sự cần thiết cho khả năng mở rộng và chúng tôi chỉ làm việc với 1 máy chủ.lưu trữ các tệp lớn trong máy chủ sql

Tôi cảm thấy rằng việc lưu trữ đường dẫn tệp bằng sql trái ngược với đốm màu là tốt hơn. Điều này có đúng không? Nếu chúng ta phải mở rộng phần mềm, chúng ta vẫn nên làm theo phương pháp này.

Trả lời

9

Tùy thuộc vào kích thước của tệp.

Có một giấy trắng tốt của Microsoft về chủ đề, here.

đối tượng nhỏ hơn 256K được lưu trữ tốt nhất trong cơ sở dữ liệu trong khi các đối tượng lớn hơn 1M được lưu trữ tốt nhất trong hệ thống tệp. Giữa 256K và 1M, tỷ lệ đọc: ghi và tỷ lệ ghi đè hoặc thay thế đối tượng là các yếu tố quan trọng

Tất nhiên, kết luận của chúng cụ thể cho SQL Server (2005 và 2008 R2).

+0

giấy tuyệt vời, thoải mái tìm! – gh9

+0

Giấy đẹp mặc dù, ngay cả khi nó là cụ thể cho máy chủ MS-SQL! Nó cũng phụ thuộc vào số lượng hình ảnh và thông số kỹ thuật của ứng dụng. Nó có lẽ là an toàn hơn cho BLOB, vì nó ít bị lỗi hơn. –

1

Chủ yếu là câu hỏi về việc sử dụng đúng công cụ cho công việc. Rất nhiều thời gian và công sức đã được đưa vào tối ưu hóa một cơ sở dữ liệu quan hệ với mục đích lưu trữ dữ liệu quan hệ. Rất nhiều thời gian và công sức đã được đưa vào tối ưu hóa hệ thống tập tin cho mục đích lưu trữ các tập tin.

Trước đây có thể được sử dụng để thực hiện một phần công việc sau này, nhưng trừ khi có một lý do thực sự tốt không sử dụng sau này thì đó là công cụ phù hợp hơn cho công việc. Trong hầu hết mọi trường hợp tôi gặp phải, lưu trữ đường dẫn tệp (và các thông tin liên quan khác về tệp bạn có thể muốn) trong DB và tệp thực sự trên FS là một cách tiếp cận phù hợp hơn để sử dụng các công cụ có sẵn.

1

Đó là một ý tưởng tồi. Trừ khi bạn có một số lý do rất cụ thể để lưu trữ tệp trong dữ liệu. Đã thảo luận ở đây: Storing Images in DB - Yea or Nay?

Nếu bạn vẫn khăng khăng, đọc các thực hành tốt nhất để làm điều đó :) đây Best Practices for uploading files to database

+0

Không có một tuần trôi qua mà chúng tôi không nguyền rủa bất cứ ai nó đã quyết định đưa hình ảnh của chúng tôi trong DB. Tôi đoán nó có vẻ như là một ý tưởng hay vào thời điểm đó và chúng tôi sẽ không bao giờ có nhiều hình ảnh, nhưng đó không phải là một ý tưởng hay. – dwidel

+0

:) đặc biệt là khi tiêu đề câu hỏi của bạn nói, "lưu trữ các tệp lớn trong máy chủ sql" Theo nghĩa lớn, lớn hơn một megabyte. Nhưng, ngay cả khi nó nhỏ hơn, tôi sẽ không lưu trữ trong DB. Chỉ vì, như @ David nói chính xác, nó không phải là công cụ thích hợp cho công việc. Tập tin - Tôi có thể muốn kích thước lại, nén, chia nhỏ hoặc có thể muốn phục vụ thông qua Amazon S3. Tôi không thể nhanh chóng làm được điều này, nếu họ ở trong DB. – Nishant

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