SQL常见FAQ分析

  • 一个SQL的查询流程是怎样的?

https://www.processon.com/view/link/6374a2f20791290b4b9e0628

  • 一个SQL语句的更新流程是怎样的?

https://www.processon.com/view/link/632da9f65653bb1ab0ea4c00

  • 说说MySQL服务端常用的组件有哪些?

连接管理器(连接管理、权限管理)、解析器(词法解析、语法解析)、优化器(对sql进行基本调优,生成执行计划)、执行器(调用执行引擎执行sql)

  • 常用SQL子句的执行顺序是怎样的?

from,on,join,where,group by ,having,select,order by, limit

  • Mysql中innodb和myisam存储引擎有什么不同?

数据存储,事务、锁、索引,外键

  • 你了解binlog吗?它的做用是什么?

归档日志,一般用于记录sql的更新逻辑,可以实现数据的备份,数据库节点之间数据的同步。

  • 你了解undolog吗?它的作用是什么?

回滚日志,一般用于记录更新操作的反向sql操作,用于保证事务的原子性,一致性。

  • 你了解redolog吗?它的作用是什么?

重做日志,可以循环使用,一般用于记录sql的物理操作,用于保证事务的持久性,可用于故障恢复。

  • 你设计数据库时要考虑哪些问题?

数据库的名字、数据库的编码、数据库中表的数量、数据库上的基本操作

  • 你设计数据库表时会考虑哪些问题?

表的名字,字段名,字段类型,字段约束,字段默认值,注释,字段个数,设计范式、反范式

  • 说说mysql中常用字段类型有哪些?

字符型(char,varchar,text)、数值型(tinyint,int,bigint,decimal)、日期型(date,datetime,timestamp)、二进制(blog)、其它(enum,set,json)

  • 你在使用数据类型时,有什么规则吗?

使用简单数据类型、最小数据类型、小数用decimal,避免使用text和blog这样的大数据类型。

  • 说说mysql中的六大约束有哪些?

主键约束(primary key),非空约束(not null),默认值约束(default),唯一约束(unique key),检查约束(check),外键约束(foreign key)

  • 说说表设计时的三大范式?

范式是一种设计规范,一种关系模式,可以对表的设计起到一个指导性作用。

1. 第一范式(1NF):描述的是字段名不可再分。例如姓名可再分为姓和名,这属于可再分。

2. 第二范式(2NF): 描述的是不存在非主键字段对主键字段的部分依赖。

3. 第三范式(3NF): 不存在非主键字段对主键字段的传递依赖。

  • 如何理解表设计时的反范式?

范式设计为我们进行表设计提供一些指导性思想,但实际项目中有时为了提高查询

效率,可能会在表中适当的添加一些冗余字段。就类似于将课程名添加到成绩表中,

这样查询成绩表时可以直接查询出课程名,不需要再去关联课程表进行查询了。但

是这种冗余可能会带来更新的复杂读。例如更新课程表的课程名时,还要去更新

成绩表中的课程名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小闫BI设源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值