- 浏览: 25995 次
- 性别:
- 来自: 杭州
最新评论
文章列表
truncate 是DDL,用于清空表中的数据,因为是DDL语言所以不能够回滚,并且不触发trigger。
具体使用方式:TRUNCATE TABLE emp;
delete 是DML,用于where条件的清空数据,当没有where时清空所有数据。因为是DML语言所以可以回滚,并且在执行过程中触发trigger。具体使用方式为:DELETE FROM emp WHERE job = 'CLERK';
另外delete操作容易造成数据库表碎片,影响查询效率。当是快进快出表,并且要用到删除整个数据时要考虑truncate操作
where 条件的区分度太小导致索引失败 原因:基于cost成本分析(oracle因为走全表成本会更小):查询小表,或者返回值大概在10%以上
失效原因:
索引失效
1) 没有查询条件,或者查询条件没有建立索引
2) 在查询条件上没有使用 ...