mysql|知识点收集
知识点收集
1. UNION ALL 与 UNION 的区别
- UNION和UNION ALL关键字都是将两个结果集合并为一个。
- UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。 而UNION ALL只是简单的将两个结果合并后就返回。
- 由于UNION需要排序去重,所以 UNION ALL 的效率比 UNION 好很多。
2. TRUNCATE 与 DELETE 区别
- TRUNCATE 是DDL语句,而 DELETE 是DML语句。
- TRUNCATE 是先把整张表drop调,然后重建该表。而 DELETE 是一行一行的删除,所以 TRUNCATE 的速度肯定比 DELETE 速度快。
- TRUNCATE 不可以回滚,DELETE 可以。
- TRUNCATE 执行结果只是返回0 rows affected,可以解释为没有返回结果。
- TRUNCATE 会重置水平线(自增长列起始位),DELETE 不会。
- TRUNCATE 只能清理整张表,DELETE 可以按照条件删除。
- 一般情景下,TRUNCATE性能比DELETE好一点。
3. TIMESTAMP 与 DATETIME 的区别
-
相同点
……