Mysql系统知识梳理

1 数据库分类

  MySQL Oracle redis 

2 MySQL 存储引擎有哪些

  ENGINE=InnoDB 提供事务安全表,支持外键。

  MyISAM

  Memory数据存入内存中,如果内存出现异常或事重启关机,所有数据都会消失

3 事务

  概念:逻辑上的一组sql语句,组成这组操作的sql语句,要么成功,要么失败。

3.1 事务四大特性ACID

  原子性(Atomicity):事务是一个不可分割的单位,事务中的sql语句,要么全都发生,要么都不发生。

  一致性(Consistency):事务发生前后,数据的完整性必须保持一致。

  隔离性(Isolation):当并发访问数据库的时候,一个正在执行的事务在执行完前,对于其他的会话是不可见的,多个并发的事务之间的数据库相互隔离。

  持久性(Durability):一个事务一旦被提交,数据库中的数据改变就是持久性的。如果出了错误也不能撤销。

3.2 事务隔离级别

  对于同时运行的几个事务,当这些事务同时访问数据库时,如果不采取隔离措施就会导致各种并发问题。由此引出隔离级别的概念,总有4个,由低到高,可逐步解决脏读,不可重复读,幻读等问题。

  Default spring:默认隔离级别,使用数据库默认的事务隔离级别

  read_uncommitied:读未提交,一个会话可以读取其他事务未提交的更新结果,一旦这个事务被回滚了,导致这个会话的结果不正确了。

  read_commited:读已提交,一个会话只能读取其他事务已经提交的更新结果,否则,等待。但是其他会话可以修改这个事务中被读取的记录,而不必等待事务结束。导致了,一个事务中两个相同的读取操作,其结果可能不同。

  repeatable_read:重复读取,在数据读取出来后加锁,直到这个事务执行结束。

  serlalizable:串行化,不管多少事务,只有执行完一个事务的所有子事务后,才可以执行另外一个事务里的所有子事务。

3.3 数据库设置的隔离级别read_commited

  可以避免脏读,且具有较好的并发性能,可能出现的问题场景,可以使用悲观锁或乐观锁控制。

4 悲观锁和乐观锁,以及使用场景

  悲观排他后,不能修改数据,即在数据被操作的时候,锁定数据不被访问。

  乐观排他后,可以修改数据,即假设数据一般情况下不会造成冲突。

5 如何实现分页

   使用sql语句关键字limit

6 数据库三大范式

1NF:对属性的原子性约束,要求属性具有原子性,不可再分解。

2NF:对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性。

3NF:对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。

7 Mysql有哪些索引:fulltext、hash、btree、rtree

8 什么时候该建立索引

  1)表的主键、外键必须有索引

  2)数据量超过300的表应该有索引

  3)经常与其他表进行连接的表,在连接字段上应该建立索引

  4)经常出现在where子句中的字段,特别是大表的字段,应该建立索引

9 sql关键字执行顺序:select->from->where->group by->having->order by

10 explain包含哪些列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值