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

在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM。

首先:

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

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+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。

参考:http://blog.csdn.net/lulei1217/article/details/50954232

转载于:https://www.cnblogs.com/xiaoshi657/p/9070137.html

mysql的常用引擎相关推荐

  1. 为什么 MySQL的常用引擎都默认使用 B+ 树作为索引?

    一.前言 为了讲清楚这个问题,阿粉先带大家了解一下什么是索引. 我记得刚刚学习数据库的时候,老师喜欢用书本的目录来类比数据库的索引,并告诉我们索引能够像目录一样,让我们更快地找到想要找到的数据. 如果 ...

  2. mysql and常用引擎_MySQL两大常用存储引擎MyISAM,InnoDB的区别

    本文主要整理了MySQL两大常用的存储引擎MyISAM,InnoDB的六大常见区别,来源于Mysql手册以及互联网的资料 InnoDB与Myisam的六大区别 MyISAM InnoDB 构 成上的区 ...

  3. MySQL指定存储引擎命令_MySQL常用指令(2)——存储引擎

    MySQL常用指令(2)--存储引擎 查询MySQL支持的存储引擎 查询全部支持的引擎: show engines; ";"可以使用"\g"等价替换,而使用&q ...

  4. (1)Mysql架构和常用引擎介绍

    Mysql设计原理栏目总结 (1)Mysql架构和常用引擎介绍 (2)Mysql索引原理和优化总结 1.MySQL逻辑架构图 (1)Server层:包括图中XX,以及所有内置函数和所有跨存储引擎功能, ...

  5. MySQL的存储引擎及常用数据类型介绍

    1. MySQL中的数据库分类 2. MySQL中的存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供不同 ...

  6. MySQL最常用数据引擎(InnoDB、MylSAM、MEMORY)详解及如何选择合适的存储引擎

    前言 存储引擎其实就是如何存储数据,如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型).在O ...

  7. mysql的存储引擎详解_Mysql存储引擎详解

    存储引擎的介绍 关系型数据库表是用来存储和组织信息的数据结构,可以将表理解为由行和列组成的表格. 由于表的类型不同,我们在实际开发过程中,就有可能需要各种各样的表,不同的表就意味着存储不同类型的数据, ...

  8. mysql支持的并发数_重学MySQL系列(五):谈谈对MySQL的存储引擎的理解

    原创作者,公众号[程序员读书],欢迎关注公众号,转载文章请注明出处哦. MySQL关于存储引擎的架构设计,相较于其他关系数据库管理系统,比如Oracle,SQL Server等数据库,这是MySQL最 ...

  9. unicode表_Python数据库操作 Mysql数据库表引擎与字符集#学习猿地

    # Mysql数据库表引擎与字符集 ![](./imgs/752951346A5F4E7EBDE362FA97107707.png) ### 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是 ...

  10. MySQL 数据库常用命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

最新文章

  1. Lucene-2.0学习文档
  2. 京东数科首次公开:强一致、高性能分布式事务中间件JDTX
  3. 推荐系统resys小组线下活动见闻2009-08-22
  4. Windows消息机制学习笔记(三)—— 消息的接收与分发
  5. Android P DP1:WiFi-RTT、刘海、多摄像头、GIF动画、NNAPI 1.1
  6. Byzantine Fault Tolerance in Proof-of-stake protocols
  7. 长见识:你真的知道C语言里extern quot;Cquot; 的作用吗?
  8. 单片机STM8S测量电压电路_单片机电路设计中的10个难点
  9. 前端学习(3082):vue+element今日头条管理-页面布局
  10. MySQL的四种事务隔离级别实践
  11. php 容器对象,Laravel 6.2 中添加了可调用容器对象的方法
  12. php unset函数 赋值 null来销毁变量
  13. WebLogic的下载和安装
  14. 坦克大战java版代码_java版本坦克大战源代码
  15. 对象和map的相互转换
  16. 详解rem布局-利用rem布局实现移动端高清显示
  17. 计算机 随机分组的方法,临床试验中的随机分组方法.pdf
  18. 2021年下半年市场营销案例分析集锦
  19. java中intern,JAVA中String的intern方法
  20. 运维:你们 JAVA 服务怎么又又又又出问题了,内存降不下来

热门文章

  1. android 照片拼接长图_齐了!照片排版最好看的App都在这!文末有福利
  2. BIO、NIO和AIO的区别简述
  3. spring 自定义注解及使用
  4. SQL中truncate 、delete与drop区别 (Rollback Segment)
  5. sphinx php 扩展安装
  6. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_6 mybatis中的事务原理和自动提交设置
  7. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_13_常用的函数式接口_Predicate接口中的默认方法and...
  8. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_1_函数式接口的概念函数式接口的定义...
  9. 【转】Centos7 ftp 配置及报错处理
  10. [数位dp][状压dp] Jzoj P3458 密码