CMS和高流量站点:PHP和MySQL

CMS和高流量网站(例如新闻门户)在逻辑,数据库设计和优化(PHP和MySQL)之间是否有区别?
我已经在*中搜索了php网站的可伸缩性,大多数情况是memcached.
有用于MySQL优化的技术吗? (我正在寻找有关此问题的书.我在amazon中进行了搜索,但我不知道什么是最好的选择.)
提前致谢

解决方法:

这不是那么容易回答.
有不同的方法和多种见解,但是我尝试覆盖一些常见的情况.但首先是一些基础知识.

大多数Web应用程序都可以在应用程序和数据库中使用.
数据库使用情况可以分为事务性(oltp)和分析性(olap)

在最佳情况下,您可以启动多个应用程序服务器并在其中分布流量.它们都连接到同一数据库服务器,并且可以独立工作.
但是,如果您有其他共享数据,会话等,可能会很难.
您只需在DNS中将多个IP地址添加到您的域名中即可完成此操作.
或者您使用负载平衡技术来转发客户端做不同的服务器.

应用程序扩展通常非常容易.数据库要复杂得多.

首先要做的通常是设置一个或多个复制服务器,这些服务器具有与主数据库相同的数据.它们可以级​​联,但具有1个严重的缺点.他们的数据并不总是最新的.通常情况下,使用时间不超过几秒钟,但在负载下可能会更长一些.但对于许多用例来说,这很好.
仅显示信息的大型站点可以将其数据库复制到某些从属服务器,设置一些应用程序服务器(在同一服务器上运行一个从属服务器和一个应用程序服务器,并让该应用程序服务器访问该数据库从属服务器是一种很好的做法)很好

每个olap查询都可以定向到从属服务器. olap查询是不进行任何修改且不需要100%up 2日期数据的查询.

因此,所有内容都需要写入完全相同的数据库源服务器,其他所有服务器都从该数据库源服务器获取其副本.例如文章的每个评论.

如果这个瓶颈变得太紧,您可以采取两个方向.

>分片
>主-主复制

分片意味着您可以在应用程序服务器上决定存储位置和数据获取位置.
例如,每个以a开头的注释都会到达服务器a,b->. b等.
多数民众赞成在一个愚蠢的例子,但基本上是这样.主要涉及一些内部ID.
如果可能的话,可以很好地分片数据,以便可以将其从该服务器agani中完全拉出.
在上面的示例中,如果我想对某篇文章发表所有评论,则必须询问eveyr服务器a-z并合并结果.这是无效的,但可能的,因为可以复制这些服务器.这称为映射(您可以检查著名的Google map-reduce算法,基本上可以做到这一点).

master-master复制意味着将数据写入不同的主服务器,并且它们彼此同步,并且不会像分片一样单独存储.
如果您的应用程序无法自行决定存储和获取数据的位置,则必须执行此操作.
您只存储到任何主服务器上,每个服务器都能获得所有东西,每个人都很高兴?
不,因为这涉及另一个严重的问题.
矛盾!想象有两个用户输入评论. commentA存储在serverA上,commentB存储在serverB上.我们应该使用哪个ID.哪个先出现?
最好是设计一个避免这种情况并具有不同键和内容的应用程序.
但是通常发生的是解决冲突,确定优先顺序和处理事情. oracle在此级别上具有很多功能,而mysql仍然落后.但是趋势正在进入更加复杂的数据结构中,例如无云.

好吧,我不认为我解释得很好,但是您至少应该从oyu可以进一步调查的文本中得到一些关键词.

上一篇:php-我的SAAS应用程序可以使用哪个计费提供商?


下一篇:PSS云计算书 设计思路