为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第9天+数据库基础二

标签:
Java MySQL

课程名称:笑傲Java面试 剖析大厂高频面试真题 秒变offer收割机

课程章节:第8章 存储、缓存、搜索高级篇

主讲老师:求老仙

课程内容:

第8章 存储、缓存、搜索高级篇

课程收获:

1,索引查询的过程?

索引分为:聚集索引和非聚集索引(二级索引,辅助索引。)

例如:

查询张三,张三是个二级索引,先通过二级索引(key-id),找到id

通过id再去查询行号,找到磁盘上行的位置

问题2)B树和B+树的区别?

  1. B+树的叶子节点链表相连

  2. 聚集索引B+树的叶子节点存储真正的数据,非叶子节点存储索引

问题3)什么场景用hash索引,为什么不用Hash存储索引?

HashTable适合存储,随机的索引,也就是说,不在乎数据的顺序,是随机访问的数据适合使用hash存储。

  1. mysql一般不用hash做索引,因为hash要求所有的数据必须都在内存中,这样非常耗费内存

  2. Key-value型的数据,有很多,不应该用mysql的hash索引,可以用redis的key-value也可以实现。

  3. Innodb某些字段访问频率过高,会生成一个hash结构,内存中会有一个LRU缓存。

问题4)为什么使用B+树的主要原因?

主要原因是减少io次数

减少磁盘扫描

注意点:

1,无符号整数最大,大概是40亿

问题5)分库分表?垂直拆分和水平拆分

垂直拆分是业务导向,是根据业务来进行拆分的

垂直:从中间切开,或者不从中间拆开

垂直拆库:10张表,分成两个库,一个库5张表

垂直拆表:一张表10个字段,分成两个表,一个表5个字段

水平:横着从中间切开,或者不从中间切开

水平拆表:还是一个数据库,原来的一个表的数据存储,到多张表

没有水平拆库

水平拆表要保证id的唯一 : 雪花算法

垂直分库又水平分表,需要保证在分布式的情况下,保证id的唯一,需要原子操作,就需要使用shardingSphere工具

雪花算法:

事务:ACID,事务隔离级别

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消