[請益] 這兩種做法哪種比較快?

看板PHP作者 (Vince)時間13年前 (2012/05/21 16:08), 編輯推噓2(2013)
留言15則, 8人參與, 最新討論串1/1
問題如下 現在要做個簡易的排班表 1.每一個人的每一天的班別寫入為一筆資料 人 班 日期 A君 123班 5/1 B君 456班 5/1 A君 456班 5/2 A君 123班 5/3 這種做法,資料庫可能有6萬筆資料 2.把班別欄位用","分開(用explode判斷 日期) 人 班 A君 123班,456班,123班 B君 456班 這樣資料數量可能減少為2千筆資料 那這兩種做法,在使用者操作的情況下,速度會比較快呢? 感覺會有點像是 資料庫搜尋 或是 php程式判斷的差別. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.200.209

05/21 16:24, , 1F
看你搜尋的條件,如果只搜尋人,那當然第二種比較快,
05/21 16:24, 1F

05/21 16:24, , 2F
但一般來說都會用 1 來設計。
05/21 16:24, 2F

05/21 16:46, , 3F
排班會常修改嗎? 第二種不利修改
05/21 16:46, 3F

05/21 17:32, , 4F
班表算是滿長修改的,但是搜尋方面也可以說非常多,所以
05/21 17:32, 4F

05/21 17:33, , 5F
想說問問看有沒有比較好的做法.我目前是用2.
05/21 17:33, 5F

05/21 18:33, , 6F
搜尋可以用很多方法優化~
05/21 18:33, 6F

05/21 23:20, , 7F
你的班別合併了,那日期欄位也合併了嗎?然後依照順序判斷代
05/21 23:20, 7F

05/21 23:21, , 8F
表的日期嗎?這樣做好像很驚險
05/21 23:21, 8F

05/21 23:24, , 9F
今天要查詢5/4號456班排的人,可能就搞死自己了
05/21 23:24, 9F

05/21 23:26, , 10F
我比較推薦用第一種做法,因為省資料量換來的代價太高了
05/21 23:26, 10F

05/22 02:04, , 11F
現在儲存介媒技術大躍進,用空間換時間是比較好的
05/22 02:04, 11F

05/22 12:06, , 12F
2看起來比較像寫log(不常看也幾乎不搜尋)的方法。
05/22 12:06, 12F

05/23 00:18, , 13F
1 +1
05/23 00:18, 13F

05/24 08:31, , 14F
後者這種最多也只拿來分格數字型索引,不會是文字
05/24 08:31, 14F

05/24 08:32, , 15F
通常會用第一種做法^^
05/24 08:32, 15F
文章代碼(AID): #1FkVW4zc (PHP)
文章代碼(AID): #1FkVW4zc (PHP)