簡體   English   中英

PHP優化是正確的嗎?

[英]PHP Optimisation is this correct?

我一直在創建一個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個連接

您應該在有用時使用緩存。 如果沒有緩存查詢的頁面生成時間為3秒,而緩存為0.03,則顯然應該使用緩存。 如果緩存沒有明顯改善,請不要浪費資源。

只需建立一個連接並重新使用它即可。 考慮到您可能有多個用戶,所以有30個連接。

編輯:最初的問題說連接。 除非這不是經常更改的數據,否則30個查詢就可以了。 在這種情況下,您可以首先執行查詢,以查看是否需要拉數據或緩存的數據是否適合服務於用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM