继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

一起写代码2公众号
关注TA
已关注
手记 34
粉丝 1
获赞 5

课程名称:笑傲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,事务隔离级别

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP