Оптимизация PHP это правильно? - PullRequest
0 голосов
/ 09 августа 2011

Я создавал php-приложение, которое делает довольно много запросов к базе данных, я бы сказал, примерно около 30 или около того, каждая загрузка страницы. Это необходимо из-за характера приложения. Я использую методы ООП 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 ]

1 голос
/ 09 августа 2011

Вы должны использовать кеширование, когда это будет полезно.Если время генерации страницы без кеширования запросов составляет 3 секунды, а с кешированием - 0,03, то, очевидно, следует использовать кеширование.Если кэширование не дает заметного ускорения - не тратьте ресурсы.

0 голосов
/ 09 августа 2011

Просто установите одно соединение и используйте его повторно.30 подключений - это много, учитывая, что у вас может быть несколько пользователей.

Редактировать: первоначальный вопрос о подключениях.30 запросов - это хорошо, если только эти данные меняются не очень часто.В этом случае вы можете сначала выполнить запрос, чтобы выяснить, нужно ли вам извлекать данные или данные в кэше подходят для обслуживания пользователю.

...