数据库-综合⾯试题汇总系列 002

39 篇文章 0 订阅 ¥9.90 ¥99.00

1 为什么要⼀定要设置主键?

其实这个不是⼀定的,有些场景下,⼩系统或者没什么⽤的表,不设置主键也没关系,mysql最好是⽤⾃增主键,主要是以下两个原因:如果定义了主键,那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则innodb 会选择第⼀个不包含有NULL值的唯⼀索引作为主键索引、如果也没有这样的唯⼀索引,则innodb 会选择内置6字节⻓的ROWID作为隐含的聚集索引。所以,反正都要⽣成⼀个主键,那你还不如⾃⼰指定⼀个主键,提⾼查询效率!

2.⾃增主键⽤完了怎么办?

在mysql中,Int整型的范围(-2147483648~2147483648),约20亿!因此不⽤考虑⾃增ID达到最⼤值这个问题。⽽且数据达到千万级的时候就应该考虑分库分表了。

3.为什么不直接存储图⽚、⾳频、视频等⼤容量内容?

我们在实际应⽤中,都是⽂件形式存储的。mysql中,只存⽂件的存放路径。虽然mysql中blob类型可以⽤来存放⼤容量⽂件,但是,我们在⽣产中,基本不⽤!主要有如下⼏个原因:

  • Mysql内存临时表不⽀持TEXT、BLOB这样的⼤数据类型,如果查询中包含这样的数据,查询效率会⾮常慢。
  • 数据库特别⼤,内存占⽤⾼,维护也⽐较麻烦。
  • binlog太⼤,如果是主从同步的架构,会导致主从同步效率问题!因此,不推荐使⽤blob等类型!

4.有⼏种不同的join?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值