参考:https://www.cnblogs.com/xiaohaillong/p/6079551.html

1.

a.Innodb引擎,Innodb引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。它本身实际上是基于Mysql后台的完整的系统。Mysql运行的时候,Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是,该引擎是不支持全文搜索的。同时,启动也比较的慢,它是不会保存表的行数的。当进行Select count(*) from table指令的时候,需要进行扫描全表。所以当需要使用数据库的事务时,该引擎就是首选。由于锁的粒度小,写操作是不会锁定全表的。所以在并发度较高的场景下使用会提升效率的。

b.MyIASM引擎,它是MySql的默认引擎,但不提供事务的支持,也不支持行级锁和外键。因此当执行Insert插入和Update更新语句时,即执行写操作的时候需要锁定这个表。所以会导致效率会降低。不过和Innodb不同的是,MyIASM引擎是保存了表的行数,于是当进行Select count(*) from table语句时,可以直接的读取已经保存的值而不需要进行扫描全表。所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的。可以将MyIASM作为数据库引擎的首先。

补充2点:

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

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

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

答案:都是B+树!

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

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

转载于:https://www.cnblogs.com/wangbiaohistory/p/10826589.html

mysql主要的两个索引Innodb和MyIASM。相关推荐

  1. 数据库的两种引擎Innodb和MyIASM

    Innodb引擎 Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔 离级别这篇文章.该引擎还提供了行级锁和外键 ...

  2. MySQL 聚集索引(InnoDB)和 非聚集索引(MyISAM) 精讲~两张图彻底搞懂

    非聚集索引(MyISAM) 索引和数据单独存放 表有三个文件 叶子结点存放行数据地址信息 通过查找到主键key,然后还得根据指针地址去数据表中找对应的数据行 聚集索引(InnoDB) 索引和数据存放在 ...

  3. mysql还是mdb2_mysql两种表存储结构myisam和innodb的性能比较测试

    MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与 ...

  4. 两千字揭密 MySQL 8.0.19 三大索引新功能:隐藏索引,降序索引,函数索引

    导读:本文详细介绍 MySQL 8.0.19 三大索引新功能,隐藏索引,降序索引,函数索引,结合其他同仁的技术应用案例,进一步进行验证改编,最后总结心得,希望对大家有帮助. MySQL 8.0 版本带 ...

  5. groupby索引有效吗_两千字揭密 MySQL 8.0.19 三大索引新功能

    原文链接:https://www.modb.pro/db/22619 导读:本文详细介绍 MySQL 8.0.19 三大索引新功能,隐藏索引,降序索引,函数索引,结合其他同仁的技术应用案例,进一步进行 ...

  6. mysql 产品表 myisam好还是innodb好_mysql两种表存储结构myisam和innodb的性能比较测试...

    MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与 ...

  7. mysql索引innodb和myisam的区别

    引用 引用 区别 InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一 ...

  8. mysql两种索引结构_19.Mysql索引结构及常见索引的区别

    转载出:http://blog.csdn.net/qq_19557947/article/details/76951912 一.Mysql索引主要有两种结构:B+Tree索引和Hash索引 Hash索 ...

  9. redis提高查询速度_面试小点-MySQL 的两种索引方法如何提高查询速度

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 索引方法 Mysql的索引方法有两种,BTERR和HASH. 散列表(Hash Table)和B+Tre ...

  10. myisam读取速度为什么比innodb快_为什么MySQL用B+树做索引

    转至:https://www.jianshu.com/p/4e159361256c 索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕 ...

最新文章

  1. 【JAVA编码专题】总结
  2. PAT乙类1010之1010 一元多项式求导
  3. 快来一起玩转LiteOS组件:Curl
  4. 蓝牙广播错误码3_蓝牙简介—物理层(PHY)
  5. easyui 提示框组件_15、Message 消息窗口组件
  6. 预防AD对象被误删除
  7. java数组线性查找_数组查找: 线性查找与二分查找
  8. 完整卸载SQL Server2008
  9. Windows7系统的70个小技巧
  10. 十天学会单片机和c语言编程》,求十天学会单片机和C语言编程 ??
  11. python字典实例简单代码_python编程入门九:字典实例代码
  12. 软件商业模式的发展与2.0时代
  13. python做var模型_python中VAR模型的条件预测
  14. UVA ~ 816 ~ Abbott's Revenge (BFS + 打印路径)
  15. X1000代码烧写配置
  16. python对接蚂蚁验证码平台
  17. PKM全民推广系列四:“个人知识管理”的知识分类体系
  18. ISO9000中服装加工行业应执行哪些检验标准?
  19. 电信催费打错话费单 男子“拖欠”45036亿元话费
  20. 聪明人做生意,打折也能玩出新鲜感!让顾客觉得现在不买就是亏!

热门文章

  1. 46.贪心算法练习:  区间合并
  2. SpringBoot +自定义dao框架 自定义注解管理多数据源与事务
  3. 史上最全的Maven Pom文件标签详解
  4. 几个你可能不了解的CSS单位
  5. QA: Android 开发kotlin换行格式难看问题
  6. Boost Asio dispatch()与post()的区别
  7. linux版Nacos安装、集群配置
  8. springboot MVC拓展配置
  9. cloudflare免费证书_国外Cloudflare免费ssl证书设置
  10. python多进程编程实例_Python多进程并发(multiprocessing)用法实例详解