Tôi khuyên bạn nên đọc Multi-Tenant Kiến trúc dữ liệu , một màu trắng giấy mà thảo luận về các tùy chọn mà bạn có, và những ưu và khuyết điểm. Tóm lại, nó cung cấp ba tùy chọn:
- DB riêng
- lược đồ riêng
- lược đồ dùng chung
Bây giờ bạn đang ở giai đoạn DB riêng biệt, cung cấp sự tách biệt tốt nhất (cách ly giữa những người thuê nhà), nhưng khó quản lý nhất. Khi bạn phát triển thành hàng trăm người thuê, bạn sẽ nhận ra rằng hậu cần của việc quản lý 100 DB là không quan trọng. Hãy suy nghĩ sao lưu-khôi phục (vị trí của các tập tin sao lưu, công việc, lịch trình, vv). Hãy suy nghĩ làm thế nào bạn sẽ giám sát và quản lý phân bổ tệp, dung lượng ổ đĩa được sử dụng và tăng trưởng cơ sở dữ liệu trên hàng trăm DB. Hãy nghĩ điều gì sẽ là kịch bản Khả năng phục hồi / Thảm họa-Khả năng phục hồi cao của bạn trong tương lai gần với 1000 người thuê nhà? 1000 DB nhân đôi, 1000 phiên vận chuyển log? Hãy nghĩ xem nếu trong 6 tháng, nhóm phát triển của bạn đến gặp bạn và nói "Tôi biết cách cung cấp tính năng tuyệt vời này cho sản phẩm của chúng tôi, chúng tôi sẽ sử dụng Sao chép giao dịch!", Bạn sẽ nói gì? "chắc chắn, hãy để tôi thiết lập 500 nhà xuất bản,"! Không thể quản lý hàng trăm DB, nhưng nếu bạn có kế hoạch, tốt hơn hết bạn nên cải thiện các kỹ năng PowerShell của mình và ngừng sử dụng các công cụ quản lý UI ngay bây giờ .
Ngoài ra, bạn cần xem xét rằng nhiều (hàng trăm) DB có tác động có thể đo lường được đối với hiệu suất và chi phí:
- không gian đĩa vật lý được sử dụng ít hiệu quả hơn (mỗi cơ sở dữ liệu phải có một số phòng dự phòng, bạn sẽ có phòng dự phòng đó nhân với số lượng DB)
- Không có cách nào bạn có thể tạo đĩa nhật ký dành riêng để ghi các tác vụ chuyên sâu, bạn sẽ phải chuyển tất cả các LDF đó vào một (hoặc nhiều) bộ lưu trữ SSD
- ghi nhật ký sẽ kém hiệu quả hơn đối với các cam kết thường xuyên khi chúng trải rộng trên nhiều bản ghi khối nhật ký riêng lẻ so với tổng hợp thành một (bạn sẽ nhận được các khối nhật ký được sử dụng). Xem LSN: Số thứ tự đăng nhập để hiểu những gì tôi đang nói.
Các DB tách biệt đi kèm với một số lợi thế mặc dù do cách ly, ưu điểm chính là sao lưu / khôi phục độc lập.
Kịch bản như của bạn mặc dù là một ứng cử viên hoàn hảo cho cơ sở dữ liệu SQL Azure . Không quản trị không gian đĩa, không cần cung cấp HA / DR, tăng lên hàng trăm / nghìn DB, v.v.