我正在建立一个SaaS系统,我们打算在该系统中为每个客户提供他们自己的数据库。该系统已经设置好,因此如果负载太大,我们可以轻松地扩展到其他服务器。我们希望拥有成千上万的客户。
问题
- 在一个SQL Server上可以/应该具有的微数据库数量是否有实际限制?
- 它会影响服务器的性能吗?
- 拥有10,000个每个100 MB的数据库或一个1 TB的数据库是否更好?
附加信息
当我说“微数据库”时,我并不是真的意思是“微”。我只是说我们的目标是成千上万的客户,因此每个单独的数据库仅占总数据存储量的千分之一或更少。实际上,每个数据库的容量大约为100MB,这取决于它获得的使用量。
使用10,000个数据库的主要原因是可伸缩性。事实是,系统的V1有一个数据库,当数据库承受负载时,我们经历了一些不舒服的时刻。
所有这些都使CPU,内存,I / O紧张。即使我们解决了这些问题,他们也使我们意识到,即使在世界上索引最佳的情况下,如果我们如希望的那样成功,我们也无法将所有数据都放在一个巨大的鸿沟中的数据库。因此,对于V2,我们正在分片,以便可以在多个数据库服务器之间分配负载。
去年,我花了很多时间来开发这种分片解决方案。每个服务器一个许可证,但是由于我们在Azure上使用VM,因此无论如何都要照顾好它。之所以出现这个问题,是因为以前我们只向大型机构提供服务,并且自己建立每个机构。我们的下一个业务是自助服务模型,任何使用浏览器的人都可以注册并创建自己的数据库。与大型机构相比,他们的数据库将更小,数量更多。
我们尝试了Azure SQL数据库弹性池。性能非常令人失望,因此我们切换回常规VM。