我正在建设一个大型网站,并希望使其可伸缩。最近,我阅读了一篇由一位经验丰富的highload项目开发人员(Oleg )撰写的文章,其中指出:
高负荷应用程序必须分为三个部分: 1)前端(HTML,CSS,JS,图片) 2)后端(服务器端:使用PHP、Python或其他服务器端语言的繁重计算任务) 3)数据库
在这种情况下,应用程序将能够承受巨大的流量。此外,本文还指出,SQL查询必须放在应用程序的某个位置。
我正在使用PHP5 OOP和MySQL数据库。我的解决方案:
1)将所有SQL查询放入类中。
2)使用封装在数据库层类中的PHP。
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查询。
我做得对吗?
发布于 2013-01-11 13:45:03
如果您想要能够处理大量的流量,您应该尝试将缓存合并到您的程序中。从这个意义上说,在专门的类中拥有所有查询将帮助您围绕它们构建一个缓存。静态内容(html,css)也是如此,这些内容可以被压缩/缓存,也可以来自不同的服务器(或自定义CDN)。
我建议看一下memcache (和加速器,如APC)。
https://stackoverflow.com/questions/14279312
复制相似问题