数据库知识总结

217 阅读2分钟

这是我关于之前学习数据库一些知识的总结 首先数据库分为两种,关系型数据库,如MySQL,还有非关系型数据库,如NoSQL。这里主要是对比较常用的关系型数据库进行的总结。

关系型数据库

关系型数据库是基于关系代数理论的,它的优缺点

优点:健壮性强,社区庞大

缺点:表结构不直观,实现复杂,速度慢

join和group by

join会做一个笛卡尔积,A✘B on会筛选出其中符合条件的记录,但是会把过程优化,以左边的外键,去寻找右边表的外键拼接。

inner join和left join,内连接和左外连接的区别?内连接不会实现null,但是外连接会显示,左外连接就是左边全选,右边拼接

事物和乐观锁

事务的特性:

ACID,原子性,一致性,隔离性,持久性。

英语为: Atomicity Consistency Isolation Durability

原子性是说要么执行完毕,要么不执行,比如银行转账,如果错误,必须回滚。

一致性是说数据库的数据必须是一致的,满足约束,比如外键,必须修改互相之间有约束的表。

隔离性是一个事务的执行不能被其它事务干扰。

持久性是服务器重启,数据不会丢失。

事务隔离级别:

  1. Read Uncommitted 读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据
  2. Read Committed 读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据
  3. Repeatable Reads 重复读,就是在开始读取数据(事务开启)时,不再允许修改操作
  4. Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。

乐观锁

乐观锁:在执行SQL之前会检验数据是否正确。

时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。

数据库索引

数据库索引有两个作用:

  1. 加快查找速度
  2. 约束数据的值

索引可用于数据库数据库优化,对常用的数据加上索引可大大加快数据的查找速度。

数据库连接池

数据库连接池的定义: 把数据库的连接先建立好,当需要使用的时候请求一个连接,不用的时候再放回去,如图

这些是我对数据库一些知识的总结,大家有什么问题可以留言。