看板 Database 關於我們 聯絡資訊
事情如下, 我將原本這樣的執行順序(PHP+MySQL) $res_vote_times = mysql_query(" SELECT message FROM system_message WHERE room_no = $room_no and date = $date and type = 'VOTE_TIMES'"); $vote_times = mysql_result($res_vote_times,0,0); mysql_query(" CREATE TEMPORARY TABLE tmp_sd SELECT uname FROM vote WHERE room_no = $room_no AND date = $date AND situation = 'VOTE_KILL' AND vote_times = $vote_times"); $res_novote = mysql_query(" SELECT user_entry.uname,user_entry.handle_name FROM user_entry LEFT JOIN tmp_sd ON user_entry.uname = tmp_sd.uname WHERE user_entry.room_no = $room_no and user_entry.live = 'live' AND user_entry.user_no > 0 AND tmp_sd.uname is NULL"); 改成這樣的敘述 $res_novote=mysql_query(" SELECT user_entry.uname,user_entry.handle_name FROM user_entry,system_message LEFT JOIN vote ON user_entry.uname=vote.uname AND vote.room_no = $room_no AND vote.date = $date AND vote.situation = 'VOTE_KILL' AND vote.vote_times = system_message.message WHERE user_entry.room_no = $room_no AND user_entry.live = 'live' AND user_entry.user_no > 0 AND vote.uname is NULL AND system_message.room_no = $room_no AND system_message.date = $date AND system_message.type = 'VOTE_TIMES'"); 被說"會有機率導致鎖表"而不採用 請問這到底是怎麼回事.... 網路上查詢除了建議把加入system_message表的部份寫成INNER JOIN以外 大概可能扯上關係的就是 http://blog.csdn.net/Areyan/archive/2006/05/27/757456.aspx 沒有提到鎖表之類的問題,想知道採用前者而不採用後者的理由? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.180.163