zoukankan      html  css  js  c++  java
  • coding++:MySQL 数据库常见两种引擎

    前言:

    1):Innodb引擎

    2):MyIASM引擎

    3):两种引擎所使用的索引的数据结构是什么?

    简单介绍这两种引擎,以及该如何去选择 ;这两种引擎所使用的数据结构是什么。

    Innodb引擎:

    1、Innodb引擎提供了对数据库ACID事务的支持。 

    2、并且还提供了行级锁和外键的约束。

    3、它的设计的目标就是处理大数据容量的数据库系统。

    4、它本身实际上是基于Mysql后台的完整的系统。

    5、Mysql运行的时候,Innodb会在内存中建立缓冲池,用于缓冲数据和索引。

    6、但是,该引擎是不支持全文搜索的。

    7、同时,启动也比较的慢,它是不会保存表的行数的。

    8、当进行Select count(*) from table指令的时候,需要进行扫描全表。

    9、所以当需要使用数据库的事务时,该引擎就是首选。

    10、由于锁的粒度小,写操作是不会锁定全表的。

    11、所以在并发度较高的场景下使用会提升效率的。

    MyIASM引擎:

    1、它是MySql的默认引擎,但不提供事务的支持,也不支持行级锁和外键。

    2、因此当执行Insert插入和Update更新语句时,即执行写操作的时候需要锁定这个表。

    3、所以会导致效率会降低。不过和Innodb不同的是,MyIASM引擎是保存了表的行数,于是当进行Select count(*) from table语句时,可以直接的读取已经保存的值而不需要进行扫描全表。

    4、所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的,可以将MyIASM作为数据库引擎的首先。

    补充2点:

    1):大容量的数据集时趋向于选择Innodb。因为它支持事务处理和故障的恢复。Innodb可以利用数据日志来进行数据的恢复。主键的查询在Innodb也是比较快的。

    2):大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快,但是UPDATE语句在Innodb下执行的会比较的快,尤其是在并发量大的时候。

    两种引擎所使用的索引的数据结构是什么?

    答案:都是 B+ 树!

    MyIASM引擎,B+ 树的数据结构中存储的内容实际上是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。

    Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。

    好记性 PK 烂笔头  

    生活就像一颗巧克力,你永远都不会知道下一颗的滋味。

  • 相关阅读:
    关于管理单元初始化失败的解决方法
    如何快速在两台电脑之间传输大文件
    拿到商标受理通知书就可以打上“TM”就可以使用吗?
    山里王土蜂蜜
    我的博客今天1岁344天了,我领取了新锐博主徽章
    Winxp Stop c0000218 unknown hard error
    设置网易博客、新浪博客、博客园的windows live writer帐户支持
    邮件变成了Winmail.dat
    outlook 2007 .pst文件过大,提示:“磁盘空间已满,无法删除邮件”
    git 本地给远程仓库创建分支 三步法
  • 原文地址:https://www.cnblogs.com/codingmode/p/12705011.html
Copyright © 2011-2022 走看看