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 的区别

  • 相同点

    ……

阅读全文

Golang|map

map

由<key,value>对组成的抽象数据结构,并且同一个key只出现一次

实现对比

方法 | hash | 搜索树 -|-|- 复杂度 | O(1) | O(logN) 顺序 | 乱序 | 有序 痛点 | 碰撞问题 | 平衡问题

源码位置

1
2
3
4
5
6
7
//main.go
package main

func main() {
	m := make(map[int]int)
	m[2] = 2
}

上面代码通过以下指令查看汇编语句 go tool compile -S main.go

……

阅读全文