[請益] MySQL執行效率一問

看板PHP作者 (Giant Heart)時間19年前 (2005/10/14 01:08), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/7 (看更多)
我有一個情況是這樣的. 在某個擁有多值的欄位中利用特定的分隔符號作區隔, 比如說是作者欄位, 此欄位中有一位以上作者, 作者與作者間用特定符號分開 因此欄位的值會長成類似 John#Mary#Joe 這樣. 為了要統計作者數, 在程式端我先把各個作者單獨取出來, 再重新parsing回一個暫存的資料庫以利統計. 程式的內容大略是這樣: ------------------------------------- $drop = 'DROP TABLE temp'; mysql_query($drop); $create = "CREATE TABLE temp ( " . "Author char(100) NOT NULL, KEY Author (Author))"; mysql_query($create); mysql_query("LOCK TABLES temp WRITE"); //中間為parsing的動作 mysql_query("UNLOCK TABLES"); ------------------------------------- 整個執行的過程沒有什麼問題, 但因為資料量較龐大.. 在執行上, 也就是說從 取出多值->寫入暫存DB->output 的過程, 速度不太理想. 因此想請教一下, 無論是在DB的設計上, 或是程式的寫法上, 是否有更合適的作法以增進執行的效率呢? 謝謝. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.76.130

10/14 10:58, , 1F
加一個欄位用來記錄作者數,或者直接把作者數放在第一格:
10/14 10:58, 1F

10/14 10:58, , 2F
如 2#Mary#John
10/14 10:58, 2F

10/14 10:59, , 3F
就不必常常算啦~
10/14 10:59, 3F

10/14 18:08, , 4F
這個方法可能行不通,因為作者數不固定說
10/14 18:08, 4F
文章代碼(AID): #13JfHuqQ (PHP)
文章代碼(AID): #13JfHuqQ (PHP)