2020-06-16

被面试官问到的几个mysql的问题

  1. mysql索引什么情况下会失效?
    1.or 每个条件都必须有索引才会使用不然会导致失效
    2.like 百分号必须不能在第一个位置否则索引失效
    3.in != 不使用索引
    4.联合索引最左原则
    5.全表扫描比使用索引快的时候索引会失效

  2. myisam和innodb
    1.myisam索引和数据是分开的,b+树只有叶子节点上存放了数据的地址,在磁盘上是三个文件,innodb索引跟数据是在一起的,b+树叶子节点有数据而不是引用
    2.myisam不支持事物和外键,innodb支持
    3.myisam只支持表级锁,innodb可以支持行级锁
    4.myisam支持全文索引,innodb不支持支持
    5.myisam记录了表的永数据行,查询数据行数比较快,如果加了where条件跟innodb效率就差不多了。
    6.在选择的时候需要考虑表需不需要支持事物,需不需要全文索引和外键

  3. 索引用hash还是b+树 hash索引普通查询效率比b+树高,但是不支持范围查找,b+树的叶子节点记录了下一个节点的位置

  4. 聚簇索引和非聚簇索引 数据和索引在一起就是聚簇索引比如innodb是天生的聚簇索引,非聚簇索引就是索引节点只存储了数据行的地址,所有数据单独存放,比如myisam

     这些内容是我自己的理解,有什么不对的地方请一定给我提出来!!!
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值