什么是更快 - 数组与数据库

时间:2011-06-29 04:24:07

标签: php mysql database arrays performance

我通过PHP向每个页面添加元标记,标题,样式表和脚本 - 但是所有页面都是分开的(因为我有一个通用的header.php)我仍然在围绕着什么更快20多页。我可以轻松地将所有值存储在多维数组中并返回整个数组,然后相应地分配每个值,或者我可以查询数据库,但实际上哪个会给我最快的结果?即使重要,它真的会慢得多吗?用户会注意到吗?所有问题我都没有回答你们的想法?

2 个答案:

答案 0 :(得分:5)

我不会把数据库带进几十页 - 除非你有很多内容需要存储在那里。相反,我要做的是在每个页面上构建数组,然后包含模板:

<?php
  $page = array(
    'title'   => 'Index Page',
    'styles'  => array( 'reset.css', 'text.css', '960.css' ),
    'scripts' => array( 'jquery.js' )
  );

  include('header.php');
?>

  <p>Page content here<?p>

<?php
  include('footer.php');
?>

header.php文件中,有以下内容:

<title><?php echo isset($page['title']) ? $page['title'] : 'Default' ; ?></title>
<?php foreach ( $page['styles'] as $style ) : ?>
<link rel='stylesheet' href='<?php echo $style; ?>' />
<?php endforeach; ?>

这可能适用于您正在做的大部分事情,但是当事情开始变得更重时 - 肯定会在数据库解决方案中投入更多的长期资金。

答案 1 :(得分:1)

两者都没有使用文件系统那么快 -

1)通过将内容分离为客户端可识别的命名文件,您可以利用HTTP的缓存机制

2)通过不要求通过应用程序逻辑(或app逻辑+数据库)路由请求,I / O操作将减少开销,因此更快。

(注意Jonathan Sampson的回答使用混合方法将数据存储在文件系统中,但可以选择性地向浏览器显示不同的组。)

还有一些时候,您必须在应用程序中操作文件系统存储不合适的任意数据结构,以及您可能想要考虑数组与数据库性能的位置。 IME,PHP数组并不总是比DB更快 - 随着数据池大小的增加,数据库变得更加高效(实际上数据库具有更大的带宽和更大的延迟)。确定哪个更快/更具可扩展性的唯一方法是测量它 - 但如果你的数据集小于100个项目,那么数组可能会更快。