05.27
兩年前我寫了一個計數器:SiteStates 來玩,一直都還算相安無事,不過最近因為我自己伺服器主機虛擬化的問題,以及日漸龐大的資料量,我不得不正式著手解決資料庫的問題。
之前儲存使用者的到訪紀錄,是採用一個 row 直接存取,把到訪紀錄(ip, time, 反解)存成一個二維 array ,將之 serialize 之後存入一個 text 欄位,要取用的時候,先取出該欄位,再 unserialize 、刪掉最頂端元素、插入最底端元素,並且控制陣列大小維持在 500 個元素。
這樣的作法在小站其實沒什麼大問題,也可以簡化某些程序,在程式上也還算方便取出資料(最少我不需要 join table),但缺點就是當資料量很龐大時,一但在寫入時當機那筆資料就沒了。而且這種作法,反而比對資料表做正規化還要佔空間。
現在新的作法是:
把 user 的資料單獨儲存在一個 table 叫做 users 。
把 user 擁有的 url 單獨儲存在一個 table 叫做 users_url,每個 user 可以擁有多組 url ,當然,每一組 url 可以單獨設定自己的計數器顏色、底色、邊框顏色、以及顯示模式(背景透明死否、邊框顯示與否、顯示資訊多寡)。
把所有到訪紀錄單獨存在一個 table 叫做 users_url_history ,使用 url_id 和 users_url 關聯,如此就可以知道每個 url 的個別到訪紀錄,資料筆數也沒有上限,一次新增也只需要動用一筆資料(刪除異同),這樣也大大降低了弄丟資料的風險。
目前正在撰寫中,等到上線的時候,使用者必須先進行「網址轉換帳號」的動作,才能繼續使用服務(我會把整個程序設計得非常簡單,花不了五分鐘!)
最近上班工作忙碌,改寫這個系統又得花不少精神,如果有 bug 或是設計不好的地方還請大家多多見諒。

最近偶而有發現連不上計數器,請問是我被擋了還是服務掛點了呢?我網站在Blogger
謝謝。
其實是這兩天系統不穩,很抱歉 >___<
別這麼說,這麼優的免費服務不多見了,我要感謝您才是~
原來是系統不穩,我以為服務掛點了….
等待恢復ing
版大辛苦了^^
抱歉有點不穩定 (因為只有一台 Server 而已,加上是免費服務,頻寬和硬體維護方面都是我的薪水在撐,所以請多多見諒)