前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库基础(六) mysql八股文

数据库基础(六) mysql八股文

作者头像
宇宙无敌暴龙战士之心悦大王
发布2022-01-10 11:20:09
7690
发布2022-01-10 11:20:09
举报
文章被收录于专栏:kwaikwai

基础

1,三范式:原子性,完全依赖,消除传递依赖。

2,引擎:InnoDB,MyIsam

3,超键,候选键,主键,外键

4,Sql约束:

  • 主键约束:唯一性,非空
  • 唯一约束:唯一性,有一个可为空
  • 检查约束:对列的数据范围限定
  • 默认约束:数据的默认值
  • 外键约束:要建立两表关系并引用主键的列。

5,varchar和char

6,in和exist(不会草)

7,drop,delete,truncate的区别

drop删表,删结构

delete 删元组,但是会记入到日志中,可以回滚。

truncate 删除不能回滚,不删结构。

8,mysql查询过程

事务

1,ACID

2,事务隔离级别

3,什么是事务

4,什么是脏读,不可重复读,幻读

5,事务实现原理

6,redo log,undo log

7,binlog

8,事务中可以混合使用引擎吗

不可以,正常情况下没问题,但是如果需要回滚,innodb没问题,myisam就会无法撤销,出现数据不一致。

9,Mysql怎么实现事务隔离

10,什么是MVCC

11,MVCC实现原理

12,什么是自动提交

MySQL默认采用自动提交AUTOCOMMIT模式。也就是说,如果不是显式地开始一个事务,则每个查询都被当作一个事务执行提交操作。

13,Innodb和Myisam的区别

1,为什么要加锁

2,按照粒度划分锁

3,乐观锁悲观锁,怎么实现

悲观锁就是加锁呗,可以java的,比如synchronized。也可以对数据,如for update。

乐观锁有CAS和版本号机制。

4,InnoDB的行锁怎么实现

给索引项加锁,所以使用行锁一定要使用索引。

5,什么是死锁,怎么解决

6,隔离级别和锁的关系

7,优化锁的意见

8,Select 。。。for update是表级锁还是行级锁

如果查询条件用了索引/主键,那么select ..... for update就会进行行锁。

如果是普通字段(没有索引/主键),那么select ..... for update就会进行锁表。

提交事务才会释放锁。

其他

1,为什么要使用分库分表

分表:数据太大

分库:并发太大

2,读写分离,主从同步,主从复制

就这两大类问题。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础
  • 事务
  • 其他
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档