Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lưu trữ hình ảnh trong SQL Server?

Có một bài báo rất hay của Microsoft Research được gọi là To Blob hoặc Not To Blob.

Kết luận của họ sau một số lượng lớn các bài kiểm tra và phân tích hiệu suất là:

  • nếu ảnh hoặc tài liệu của bạn thường có kích thước dưới 256KB, thì việc lưu trữ chúng trong cột VARBINARY của cơ sở dữ liệu sẽ hiệu quả hơn

  • nếu ảnh hoặc tài liệu của bạn thường có kích thước trên 1 MB, thì việc lưu trữ chúng trong hệ thống tệp sẽ hiệu quả hơn (và với thuộc tính FILESTREAM của SQL Server 2008, chúng vẫn nằm dưới sự kiểm soát giao dịch và là một phần của cơ sở dữ liệu)

  • ở giữa hai điều đó, có một chút rắc rối tùy thuộc vào cách sử dụng của bạn

Nếu bạn quyết định đặt ảnh của mình vào bảng SQL Server, tôi thực sự khuyên bạn nên sử dụng một bảng riêng để lưu trữ những ảnh đó - không lưu ảnh nhân viên trong bảng nhân viên - hãy giữ chúng trong một bảng riêng. Bằng cách đó, bảng Nhân viên có thể luôn gọn gàng, có ý nghĩa và rất hiệu quả, giả sử bạn không phải lúc nào cũng cần chọn ảnh nhân viên như một phần trong các truy vấn của mình.

Đối với nhóm tệp, hãy xem Tệp và Kiến trúc nhóm tệp để biết phần giới thiệu. Về cơ bản, bạn sẽ tạo cơ sở dữ liệu của mình với một nhóm tệp riêng biệt cho các cấu trúc dữ liệu lớn ngay từ đầu hoặc thêm một nhóm tệp bổ sung sau đó. Hãy gọi nó là "LARGE_DATA".

Bây giờ, bất cứ khi nào bạn có một bảng mới để tạo cần lưu trữ các cột VARCHAR (MAX) hoặc VARBINARY (MAX), bạn có thể chỉ định nhóm tệp này cho dữ liệu lớn:

 CREATE TABLE dbo.YourTable
     (....... define the fields here ......)
     ON Data                   -- the basic "Data" filegroup for the regular data
     TEXTIMAGE_ON LARGE_DATA   -- the filegroup for large chunks of data

Hãy xem phần giới thiệu MSDN trên các nhóm tệp và chơi với nó!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm phân vùng COUNT () OVER có thể sử dụng DISTINCT

  2. Sử dụng một biến trong truy vấn OPENROWSET

  3. Cách hoạt động của hàm SOUNDEX () SQL Server

  4. Cấu hình thông báo thư cơ sở dữ liệu trong MS SQL Server

  5. 2 cách liệt kê tất cả các hàm có giá trị bảng trong cơ sở dữ liệu SQL Server