InnoDB知识点整理

原创 2015年11月18日 18:09:02

1.InnoDB支持事务,外键,行级锁,索引和数据存到一起,不保存表的具体行数,count时需要全表扫描,此时会锁表,删除数据的时候一条一条的删除,即使是删除表中所有的数据,不支持全文索引。

2.InnoDB在select和insert性能上不如myisam

3.InnoDB除了存自定义的列之外,还存了一个事务id和回滚指针列,如果表中没有主键,并且也没有not null 的unique,那么Innodb会增加一个rowid列作为主键(6个字节)

4.InnoDB的数据是按行进行存放,主键索引(聚集索引)是一个B+Tree,基于聚集索引的特点,InnoDB的主键索引的叶子节点保存了整行数据,非叶子节点保存了主键,辅助索引的叶子节点中保存的是主键,如果通过辅助索引检索数据,是先通过辅助索引找到主键,然后再查主键索引,找到数据。

5.InnoDB的锁级别是行锁,注意,InnoDB的行锁是通过给索引项加锁来实现的,InnoDB行锁分为3中形式,简单了解,一种是给索引项加锁,一种是对索引项的间隙,进行加锁,第三种就是对记录和前面的间隙进行加锁。

     因为InnoDB的行锁是通过索引项来实现的,所以,如果不通过索引检索数据,那么Innodb将对表中所有的记录进行加锁,也就是表锁。(1)不通过索引条件查询的时候,会锁定表中的所有记录(2)如果索引的值相同,那么会锁定两行数据,例如id是索引,存在这样的数据{id:1, name:1} {id:1, name:4} 如果查询条件是id=1 and name=4  那么会锁定id=1的所有记录,从而会出现锁冲突的现象。(3)当表中由多个索引的时候,不同事务使用不同的索引,不论是什么索引,都会使用行锁对数据进行加锁。(4)即便是查询条件中有索引字段,但是如果执行计划没有使用这个索引,还是没用,所以分析锁冲突的时候别忘记了执行计划。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

前端知识点整理

  • 2017年11月14日 22:48
  • 7.58MB
  • 下载

javaweb期末复习知识点整理

  • 2015年06月05日 19:41
  • 117KB
  • 下载

【个人网络整理】NOIP / 省选 /NOI 知识点汇总

NOIP知识点汇总 加*号是选学,加粗为重点,重要值排序不分先后 基础算法 贪心、枚举、分治、二分、倍增、*构造、高精、模拟 图论 图  最短路(dijkstra、sp...

jquery知识点整理

  • 2013年07月19日 09:01
  • 39KB
  • 下载

人工智能知识点整理

  • 2014年04月22日 16:58
  • 467KB
  • 下载

java面试知识点整理之扩展系列

java面试扩展系列知识点整理redis redis的应用场景 redis的五种数据类型 dubbo1、默认使用的是什么通信框架,还有别的选择吗? 2、服务调用是阻塞的吗? 3、一般使用什么注册中...

计算机组成原理知识点整理

  • 2014年09月15日 08:29
  • 37KB
  • 下载

三级网络技术知识点整理

  • 2017年05月19日 13:24
  • 41KB
  • 下载

spring boot 知识点整理

最近新的项目架构启用spring boot cloud,SO现在先坐下简单的技术梳理,后边的博客会把spring的技术细节,boot的技术细节重新梳理一遍 1、下面是根据条件初始化bean ...

计算机网络知识点整理

  • 2015年07月25日 19:05
  • 26KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:InnoDB知识点整理
举报原因:
原因补充:

(最多只允许输入30个字)