Re: [請益] 如何有效率的處理"計數器"

看板PHP作者 (任性)時間16年前 (2009/06/30 10:40), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《twbbsorg (Will)》之銘言: : 我的縮短網址服務 http://3b8.cc/ : 當使用者用短網址跳址時,系統自動在 MySQL 加一筆資料當 log : 然後使用者可以查詢短網址被使用次數 (SELECT COUNT(*)...) : 當初沒想太多只想快快上線 : 但,隨著 log table 越來越大,查詢的時間變得越來越慢 : log table 現有上百萬筆資料,每次 SELECT COUNT(*) 都要好久 建議可以把 Profiling 打開來看看問題在哪 我剛剛試了一下,在一個 1,178,406 筆資料的資料表中 用 select count(id) 只要 0.01- 0.02 秒(看Profiling時間花在 sending data) 但是 select count(*) 卻只要 0.007 秒左右(一樣時間花在 sending data) (以上都有加上 where 條件) 真詭異,不知道為什麼會有這個差異。 : 我想換個處理方式: : 加一個 counter 欄位,每當使用者跳址時,直接去讀取原值然後 +1 寫回去 : 這樣處理當量大的時候會不會有問題? 或是有沒更有效的處理方法呢? 這種方法好~~ -- 任性是我僅有的溫柔.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.220.104.62

06/30 11:20, , 1F
index ?
06/30 11:20, 1F

06/30 11:53, , 2F
亂入:count(id) 比較麻煩,count(*) 只要取總數?
06/30 11:53, 2F
文章代碼(AID): #1AINisXV (PHP)
討論串 (同標題文章)
文章代碼(AID): #1AINisXV (PHP)