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

Cách tốt nhất để lưu phông chữ trong cơ sở dữ liệu SQL Server

Có một bài báo thực sự tốt của Microsoft Research có tên To Blob or 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 256K, 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 thứ đó, 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 foto 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 foto nhân viên như một phần của 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 cho 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 tạo một bảng mới 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

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. Hiệu suất chậm của SqlDataReader

  2. Cách tăng tốc máy chủ SQL của bạn bằng cách sử dụng giám sát hiệu suất cơ sở dữ liệu

  3. Đối chiếu không phân biệt chữ hoa chữ thường trong SQL Server

  4. Quyền cấp SQL thực thi trên nhiều đối tượng

  5. Làm thế nào để Tìm các Hàng trùng lặp bởi một khóa nhưng không trùng lặp trong tất cả các cột?