麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > PhpCMS > 正文

PHPCMS 中 cache_count() 函數的作用

2024-09-10 07:16:05
字體:
來源:轉載
供稿:網友

原先我不明白 cache_count 有什么作用,現在談談它的用法.

cache_count() 函數第一次看到是在 PHPCMS2008 中,作用是緩存一條 COUNT(*) SQL 查詢的結果,如:

cache_count("SELECT COUNT(*) AS count FROM ...")

有一次在寫一個后臺分頁功能時,統計 COUNT(*) 總數的查詢使用了 cache_count 做緩存,但在測試分頁功能時發現分頁無效,本來應有第二頁的,但分頁結果卻還是只有一頁,原來是因為統計的查詢語句被 cache_count 緩存了且緩存有效期還未過,因此分頁結果還是原來的一頁.

當時我斷定,cache_count 既影響測試又沒用.

但是我錯了,想象一下:

總共有 88331 條記錄,每頁顯示 20 條,共 4417 頁。列表頁是前臺頁面,假設有 10 個并發訪問,每個都訪問不同的頁數,比如 1, 3, 5 頁.

于是我發現,COUNT(*) 的結果實際上是一樣的,無論是第 1 頁,還是第 1000 頁,只要數據不變,COUNT(*) 也不會變,實際上,當頁數大于 1000 頁以后,那怕每天增加 100 頁左右的記錄數,由于增加的記錄是排在前面的,今天的頁數到底是 4417 還是 4517 一點關系都沒有——根本不會有真正的用戶會去看第 4500 多頁的數據.

設現在統計 COUNT(*) 需要用時 0.1(s),每天列表頁會被訪問 100 次,那么,COUNT(*) 總用時為 0.1*100 = 10(s) ——花 10(s) 去取 100 個相同的結果.

所以要用 cache_count,緩存有效期為 1 天,于是,無論今天列表頁被訪問多少次,都只需執行一次 0.1(s) 的統計,后面每次讀取緩存只需用時約 0.0002(s).

訪問次數越多,節省的時間就越多,這就是 cache_count 的作用,所以,列表頁都可以用 cache_count(),唯一需要注意的只是根據數據量的不同設計不同的緩存有效期.

PHPCMS cache_count() 的緩存有效期用常量定義,這不方便靈活地控制每條查詢的緩存有效期,所以我把緩存有效期也加入為 cache_count 的參數,原形如下:

cache_count($sql, $timeout = 默認緩存有效期)

%%

# 歷史

2011-10-14 初稿,包含 cache_count() 及 page_select() 兩個函數的說明.

2012-04-22 刪除 page_select() 函數的說明,只說明 cache_count() 函數.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美一区中文字幕 | 日本黄色一级电影 | 在火车上摸两乳爽的大叫 | 国产成人精品无人区一区 | 九九精品在线播放 | 草莓福利社区在线 | 一级成人毛片 | 午夜热门福利 | 一级免费在线 | 国产午夜免费视频 | 成人毛片视频在线播放 | 欧美性受xxxx白人性爽 | 91久久久久久久久久久久久久 | 日韩精品99久久久久久 | 3344永久免费| 精品国产乱码一区二区 | 精品一区二区三区免费毛片爱 | 国产88久久久国产精品免费二区 | 91精品动漫在线观看 | 免费一级欧美大片视频 | 欧美一级美片在线观看免费 | 黄色毛片前黄 | 国产乱淫av片免费网站 | jizzyouxxxx| 欧美成人精品不卡视频在线观看 | 国产日韩免费观看 | 日本最新免费二区三区 | 国产高潮好爽受不了了夜色 | 欧美18videos性处按摩 | av在线免费观看播放 | 亚洲日本韩国精品 | 国产免费观看av | 欧产日产国产精品99 | 九色中文字幕 | 日韩一级视频 | 国产成人精品免费视频大全最热 | 中文在线免费观看 | 国产乱乱视频 | h视频在线免费观看 | 国产精品久久久久久久午夜片 | 亚洲成人精品久久 |