PHP优化是正确的吗?

时间:2011-08-08 23:25:11

标签: php mysql oop query-optimization

我一直在创建一个php应用程序,它对数据库进行了很多查询,我说大约每次加载大约30个左右。由于应用程序的性质,这是必需的。我正在使用OOP php技术并尽可能地优化我的查询。我应该使用某种缓存系统吗?或者你会说30很好吗?这是一个典型的查询。

好的,我的__construct看起来像这样:

public function __construct($host = 'localhost', $user = 'root', $pass = 'root', $name = 'advert') 
    {   
        $this->_conn = new mysqli($host, $user, $pass, $name)
            or trigger_error('Unable to connect to the server, please check your credentials.', E_USER_ERROR);
    }

还有一种方法。

$sql = "SELECT `advert_id`,
                        `ad_title`,
                        `ad_image` FROM adverts WHERE UNIX_TIMESTAMP() < `ad_expires` AND `ad_show` = 0 AND `ad_enabled` = 1 ORDER BY `ad_id` DESC LIMIT 1";

        $stmt = $this->_conn->prepare($sql);
        if ($stmt) {
            $stmt->execute();
            $stmt->bind_result($ad_id, $ad_title, $ad_image);
            $rows = array();
            while ($row = $stmt->fetch()) {
                $item = array(
                    'ad_id' => $ad_id,
                    'ad_title' => $ad_title,
                    'ad_image' => $ad_image
                );
                $rows[] = $item;
            }

整个应用都是这样的。

感谢任何反馈,我们将不胜感激。

**编辑抱歉,我打算说30个查询不是30个连接

2 个答案:

答案 0 :(得分:1)

您应该在有用的时候使用缓存。如果没有缓存查询的页面生成时间是3秒,并且缓存为0.03,那么显然应该使用缓存。如果缓存没有给出明显的提升 - 不要花费资源。

答案 1 :(得分:0)

只需建立一个连接并重新使用即可。考虑到您可能有多个用户,30个连接很多。

编辑:初步问题说连接。 30个查询没有问题,除非这是不经常更改的数据。在这种情况下,您可以先查询是否需要提取数据,或者缓存的数据是否可以提供给用户。

相关问题