mysql|InnoDB的ACID

基本概念

ACID

  • 原子性(Atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。
  • 一致性(consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。(其实原子性和隔离性间接的保证了一致性)
  • 隔离性(isolation):通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。
  • 持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。

方便记忆秘诀——“一次缘分”

……

阅读全文

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只出现一次

……

阅读全文