作者KennyL (Giant Heart)
看板PHP
標題[請益] MySQL執行效率一問
時間Fri Oct 14 01:18:57 2005
我有一個情況是這樣的.
在某個擁有多值的欄位中利用特定的分隔符號作區隔,
比如說是作者欄位, 此欄位中有一位以上作者, 作者與作者間用特定符號分開
因此欄位的值會長成類似 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
1F:推 lichihwu:加一個欄位用來記錄作者數,或者直接把作者數放在第一格: 10/14 10:58
2F:→ lichihwu:如 2#Mary#John 10/14 10:58
3F:→ lichihwu:就不必常常算啦~ 10/14 10:59
4F:推 KennyL:這個方法可能行不通,因為作者數不固定說 10/14 18:08