沈阳营销型网站,坑梓网站建设如何,建设银行官网网站员工招聘,服装网站建设公司地址InnoDB引擎#xff1a; 提供了对数据库ACID事务的支持#xff0c;并且实现了SQL标准的四种隔离级别 提供了行级锁和外键约束。 它的设计的目标是处理大容量数据库系统#xff0c;用于缓冲数据和索引。 不支持FULLTEXT类型的数据#xff0c;没有保存表的行数#xff0c;当s…InnoDB引擎 提供了对数据库ACID事务的支持并且实现了SQL标准的四种隔离级别 提供了行级锁和外键约束。 它的设计的目标是处理大容量数据库系统用于缓冲数据和索引。 不支持FULLTEXT类型的数据没有保存表的行数当select count* from table 时需要扫描全表。 使用数据库事务时该引擎是首选。 由于锁的粒度更小写操作不会锁定全表所以在并发较高时使用InnoDB效率会提升。 行级锁也不是绝对的 如果只在执行一个SQL语句时不能确定要扫描的范围InnoDB同样会锁定全表。 MyIASM引擎 没有提供对数据库事务的支持也不支持行级锁和外键 因此在insert 或update时需要锁定全表效率会降低。 存储了表的行数当select count(*) from table 时只需要直接读取已经保存好的值而不用扫描全表。 如果读操作远远多于写操作且不需要数据库事务的支持那么MyIASM也是很好的选择。 两种引擎的比较 大尺寸的数据集趋向于选择InnoDB引擎因为它支持事务处理和故障恢复。数据库大小决定了故障恢复的时间长短。InnoDB引擎可以利用事务日志进行数据恢复。 主键查询在InnoDB引擎下会相当快 大批量的insert语句(在每个insert语句中写入多行批量插入在MyISAM下会快一点。 Update语句在InnoDB下会更快一点。 数据结构 B-Tree 每个节点最多可以有d个分支d成为B-Tree的度 B-Tree中的元素都是有序的比如图中元素7左边的指针指向的节点中的元素都小于7而元素7和16之间的指针指向的结点中的元素都处于7和16之间。正是满足这样的关系才能实现高效的查找首先从根节点进行二分查找找到就返回对应的值否则就进入相应的区间结点递归查找直到找到对应的元素或找到null指针找到null指针则表示查找失败。时间复杂度为O(logN). BTree: Btree内部节点不存储数据只存储指针而叶子节点则只存储数据不存储指针。 MyISAM的 BTree的叶子节点上的data并不是数据本身而是数据存放的地址。 InnoDB引擎的索引结构同样是BTree但InnoDB的索引文件本身就是数据文件即BTree的数据区域存储的就是实际的数据这种索引就是聚簇索引。 聚簇索引的数据的物理结构存放顺序与索引顺序是一致的即只要索引的事相邻的那么对应的数据一定也是相邻地存放在磁盘上。转载于:https://www.cnblogs.com/xuesheng/p/7928962.html