作者roga (凝視)
看板Database
標題[SQL ] 請教一個效能的問題
時間Sat Nov 22 01:00:55 2008
請問
DELETE FROM online WHERE UNIX_TIMESTAMP(NOW()-300) > $var
只有條件一
DELETE FROM online WHERE UNIX_TIMESTAMP(NOW()-300) > $var AND id = $id
條件一 條件二
這兩個敘述,對於資料表上面的刪除效能差異很大嗎 (假設有 10000 筆資料)
id 有建 index.
資料庫是 MySQL
儲存引擎若是 MyIASM 她會 lock table , InnoDB 則是 lock row
1. 若是直接 drop table 效能會有差異
2. 刪除時 MyIASM 可能佔用時間較長 (?)
我想知道,這兩句 SQL 的流程差異會有差別嗎?
資料庫的行為是先找出所有 的 條件一,再篩選出條件二
還是靠 index 找到條件二,再篩選出條件一
==
不好意思,語意有點含糊,希望能幫小弟解答
--
凝視著,卻看不見光景。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.223.207
※ 編輯: roga 來自: 220.130.223.207 (11/22 01:02)
推 grence:聽說..mysql有explain指令可以看執行計畫,試試看囉 11/22 13:24
→ roga:thanks 11/23 00:26