MySQL数据库面试题

IBM面试:

1、delete,drop,truncate 都有删除表的作用,区别在于:

delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。

delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。

执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

2、数据库中表的几种join方式?

join是对数据库中的两张或两张以上的表进行连接操作。join分为:内连接(inner join)和外连接(outer join)。其中,外连接分为:左外连接,右外连接,全外连接。

1)面试官:B树和B+树之间的区别是什么?

B树结构图:

 B+树结构图:

二者区别如下: 

  1. b树的内部节点包含数据,b+树内部节点只有索引作用,数据都存储在了叶子结点;
  2. b树叶子节点没有互相引用,所以需要中序遍历。b+树叶子节点是单向(mysql双向)链表,可以顺序遍历。。故由此可得知,b+树更适合范围查找。

注解:中序遍历就是就是首先遍历左子树,然后访问当前节点,最后遍历右子树。对于下面的二叉树,中序遍历结果如下:

结果:[5,10,6,15,2]

直观来看,二叉树的中序遍历就是将节点投影到一条水平的坐标上。如图:

 2)面试官:MySQL数据库中,什么情况下设置了索引但无法使用?(什么情况下会导致索引失效)

  1. 没有符合最左原则;
  2. is null 可以使用索引,is not null 无法使用索引;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值