MySQL面试题

1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15

答案: 15 ,重启过之后,从之前的开始,如果没有重启,就是18

 

2、.MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的:

A. 数据块
B. 索引值

  1. 答:索引值。innodb表数据是索引组织表形式存放  
  2.   但是对索引页加锁,采用位图方式实现([color=red]如何实现[/color])  
  3.   
  4.   锁:提供共享资源的并发访问,保证数据的完整性、一致性  
  5.   
  6. sqlserver:2005前,页级锁;之后乐观并发,悲观并发。乐观并发支持行级锁  
  7. 但和innodb实现方式不同,sql server下锁是稀有资源,某种情况下会升级为表锁  
  8.   
  9. innodb、oracle:提供一致性的非锁定读、行级锁(没有相关额外开销)  
  10.   通过索引查询时,主键锁的是key,辅助索引锁的是范围  
  11.   
  12.    锁的两个概念:latch、lock  
  13.    latch:线程使用,轻量级锁,锁定内存数据结构  
  14.         锁定时间必须很短。可再分为mutex(互斥锁)、rwlock(读写锁)。  
  15.        目的是用来保证并发线程操作临界资源的正确性,  
  16.         并且没有死锁检测,有mysql server保证  
  17.    lock:事务使用,锁定的对象:表、页、行。commit或rollback后释放  
  18.   
  19.    意向锁:表级别的锁,表示下一行被请求的锁类型  
  20.   
  21.    locks rec but not gap:  
  22.          表示锁住的是索引,而不是范围。  
  23.        有死锁检测  
  24.         有死锁检测  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值