MySQL

B树和B+树的区别是什么?

都是每个节点都存储了多个数据

都是排序树

B+树:非叶子节点存储索引,叶子节点存储值;每一个叶子节点都指向下一个叶子节点

MySQL的InnoDB中的B+树叶子节点指向上一个和下一个叶子节点

mysql有哪些锁?

按锁的粒度分类:

行锁

表锁

间隙锁

排他锁,加锁后其他事务不能读,不能上锁,不能写

共享锁,加锁后其他事务可以读,可以上锁,但不能写

乐观锁,通过版本号来实现

悲观锁

acid怎么保证?

A原子性通过undolog日志保证,记录了要回滚的日志信息,事务回滚时撤销已经执行成功的sql

C一致性由其他三大特性保证

I隔离性由MVCC来保证

D持久性由内存+redolog来保证,mysql修改数据的同时,在内存和redolog日志中记录着这次操作,如果宕机了可以从redolog恢复

主从同步怎么实现?

从服务器订阅主服务器的binlog日志

什么是MVCC?

mvcc是多版本并发控制,mvcc只在读已提交和可重复读中,解决了脏读和不可重复度问题,使用行锁表锁解决了幻读问题

每条数据都有一个隐藏的roll_pointer列,保存上一个版本的地址

创建索引的原则?

  1. 最左匹配原则
  2. 重复度低
  3. 不经常更改
  4. 区分度的高
  5. 索引尽量扩展,而不是新建
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蒋劲豪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值