我正在使用ZF编写一款PHP应用程序。客户将使用它向最终客户销售产品。客户可以将其应用程序托管在我的服务器上,也可以使用自己的服务器。其中大部分客户将在我的服务器上托管此应用程序。
我可以为所有客户设计一个数据库,因此每个客户都将使用相同的数据库,但当然产品等将分配给特定客户。这很简单。
我可以为每个客户使用单独的数据库,以使数据库结构更简单。然后,我可能会使用单独的子域和甚至文件位置,但那只是一个细节问题。
哪种解决方案具有更好的性能,差别有多大?您会选择哪种方案?
我正在使用ZF编写一款PHP应用程序。客户将使用它向最终客户销售产品。客户可以将其应用程序托管在我的服务器上,也可以使用自己的服务器。其中大部分客户将在我的服务器上托管此应用程序。
我可以为所有客户设计一个数据库,因此每个客户都将使用相同的数据库,但当然产品等将分配给特定客户。这很简单。
我可以为每个客户使用单独的数据库,以使数据库结构更简单。然后,我可能会使用单独的子域和甚至文件位置,但那只是一个细节问题。
哪种解决方案具有更好的性能,差别有多大?您会选择哪种方案?
就性能而言,你基本上是从“分片”方法开始的。因此,分片性能策略将变得轻而易举。
缺点是你可能会争论说你在复制中失去了一些(未定义的)开销。
一个陷阱是你可能无法及时注意到主要组件的性能问题。这是因为它们如此分散,所以可能不会出现在你的雷达上。负载测试是解决这个问题的方法。