作者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)
1F:推 grence:听说..mysql有explain指令可以看执行计画,试试看罗 11/22 13:24
2F:→ roga:thanks 11/23 00:26