Re: [請益] 如何有效率的處理"計數器"
※ 引述《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
06/30 11:20, 1F
推
06/30 11:53, , 2F
06/30 11:53, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章