Tôi nhớ từ các podcast stackoverflow rằng Fog Creek sử dụng cơ sở dữ liệu cho mỗi khách hàng cho Fogormsz . Tôi cho rằng điều đó có nghĩa là các máy chủ Fogbugz On Request có 10 nghìn cơ sở dữ liệu.
Chúng tôi mới bắt đầu phát triển một ứng dụng web và có một vấn đề tương tự để giải quyết (rất nhiều khách hàng có dữ liệu bị cô lập của riêng họ).
Những vấn đề tôi nên mong đợi khi sử dụng cơ sở dữ liệu cho mỗi khách hàng? Làm thế nào tôi có thể giải quyết chúng?
Những suy nghĩ ban đầu của tôi
Ưu điểm của cơ sở dữ liệu trên mỗi khách hàng
- Lược đồ cơ sở dữ liệu đơn giản
- Sao lưu đơn giản hơn - bạn có thể sao lưu lần lượt từng khách hàng mà không thực sự ảnh hưởng đến các khách hàng khác.
- Làm cho nó dễ dàng để xuất một dữ liệu khách hàng nhất định.
- Hiệu suất bộ đệm tốt hơn - ghi vào một trong các bảng hoạt động nhiều hơn chỉ tác động đến một khách hàng đã thực hiện ghi.
- Dễ dàng hơn để mở rộng quy mô trên phần cứng. Ví dụ: khi chúng tôi cần đi từ 1 đến 2 máy chủ, chúng tôi chỉ cần chuyển một nửa khách hàng của mình sang máy chủ mới.
Nhược điểm
- MySQL có thể đối phó với 5.000 cơ sở dữ liệu? Hiệu suất sẽ hút?
- Các thay đổi đối với lược đồ có thể khó lặp lại trên tất cả các cơ sở dữ liệu. Chúng tôi thực sự sẽ phải có một kế hoạch tự động cho việc này, chẳng hạn như phiên bản lược đồ và một kịch bản hiểu cách lấy cơ sở dữ liệu từ phiên bản này sang phiên bản khác.
- Làm bất cứ điều gì chung cho tất cả khách hàng của chúng tôi có thể khó xử hoặc không thể
- Tương tự như trên, nhưng bất kỳ phân tích nào chúng tôi muốn thực hiện trên tất cả các khách hàng của chúng tôi có thể là không thể. Làm thế nào chúng ta nên theo dõi việc sử dụng trên tất cả các khách hàng chẳng hạn?
USE CompanyData;