0

我正在建立一个大型网站,并希望使其具有可扩展性。我最近阅读了一篇由经验丰富的高负载项目开发人员 (Oleg Bunin) 撰写的文章,其中指出:

高负载应用必须分为三个部分:

1) 前端(HTML、CSS、JS、图像)

2) 后端(服务器端:使用 PHP、Python 或其他服务器端语言的繁重计算任务)

3) 数据库

在这种情况下,应用程序将能够承受巨大的流量。文章还指出,SQL查询必须放在应用程序的一个地方。

我正在使用 PHP5 OOP 和 MySQL 数据库。我的解决方案:

1) 我将所有 SQL 查询放入类中。

2)我使用包装到数据库层类中的PHP PDO。

3) 每个类都使用数据库层对象进行初始化,并使用它来运行 SQL 查询。

例子:

// On the public accessible page
$DBH    = new RwtDatabaseLayer(['messages']); # database name
$msgs   = new GetMessages($DBH);

在我的GetMessages课堂上:

class GetMessages
{
    private $_DBH;

    function __construct($DBH)
    {
        $this->_DBH = $DBH;
    }
    function get_messages()
    {
            $this->_DBH->run(QUERY HERE); // `run` is Database Layer method
    }
 }

因此,我的公共可访问页面上的代码不包含任何 SQL 查询。

我这样做对吗?

4

2 回答 2

2

如果您希望能够处理大量流量,您应该尝试将缓存合并到您的程序中。从这个意义上说,将所有查询放在专门的类中将帮助您围绕它们构建缓存。静态内容(html、css)也是如此,可以压缩/缓存或从不同的服务器(或自定义 CDN)提供。

我建议看看 memcache(以及 APC 等加速器)

于 2013-01-11T13:45:03.360 回答
0

我强烈建议您阅读许多主要框架使用的模型视图控制器设计模式,然后至少学习其中一个主要框架,Zend Framework 2Symfony 2将是很好的起点。IMO 在尝试创建“巨大流量”网站之前,您确实需要了解技术和设计原则

于 2013-01-11T13:57:42.747 回答