mysql - 使用 xml 缓存/读取数据而不是从 MySQL 数据库读取数据是个好主意吗?

标签 mysql xml performance caching

我运行自己的博客系统已经有一段时间了,我注意到对于大多数页面,每次访问页面时都需要执行几个(5-10)相同的数据库查询。

现在我正在考虑将数据缓存到 xml 文件中。这是我的计划:

--- 发布/编辑博客时,向MySQL数据库插入/更新数据,并生成xml文件

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <id>32</id>
    <title>caching data with xml</title>
    <date>2012-10-01</date>
    <content><![CDATA[<p>blah...blah...blah...</p>]]></content>
</data>

--- 当页面被访问时,首先检查文件是否存在(以防万一),然后解析 xml 文件并格式化/输出数据。

if(file_exists("path/to/blog/32.xml")) {
    $data = simplexml_load_file("path/to/blog/32.xml");
    echo '<h2'>.$data->title.'</h2>';
    echo '<p'>.$data->date.'</p>';
    echo $data->content;
}
else {
    mysql_query(...);
}

通过这样做,MySQL 可以做更少的工作,但我不太确定这是否会导致以后出现任何问题,比如 100 或 300 个访问者同时访问同一页面。 PHP 可以处理吗?我用这个方法做对了吗?

提前感谢您提供任何信息和提示。

顺便说一句,我还没有考虑使用这些模板。

最佳答案

一般来说,如果可能的话,缓存总是个好主意,我认为您的 xml 解决方案不会导致太多性能问题。但你可以考虑使用Memcache相反(这可能更方便)。

如果您出于某种原因不想使用 Memcache,而是使用 XML 缓存,并且您不确定它是否会损害或提高性能,您可以简单地对 SQL 查询和缓存解决方案进行基准测试,然后进行比较。

然而,在我看来,这听起来像是过早的优化。您的博客是否真的同时有 300 名访问者,还是只是虚构的情况?

关于mysql - 使用 xml 缓存/读取数据而不是从 MySQL 数据库读取数据是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12981893/

相关文章:

mysql - CakePHP X hasMany Y,找到具有 Y.name = "value1"且同时具有 Y.name = "value2"的 X

java - 使用 MOXy 使用默认的 minOccurs 生成模式

java - 使用 Mule ESB 的 LDAP 连接器在搜索时获得一致的响应

PHP SimpleXML 按元素类型分组

performance - 批量生成http响应

performance - Open XML SDK v2.0 删除 20,000 多行 Excel 文件中的第一行时出现性能问题

performance - 一种快速加密/解密算法,不会用于安全性,而是用于打击垃圾邮件

MySQL 键有点奇怪

mysql - 一个用于 MySQL 保留和运算符单词和短语的库

php - 当使用从 Zend_Db_Table_Row_Abstract 继承的类时,如何连接 Zend 中的表?