深入MySQL-MySQL面试题深度解析1--存储引擎+索引

本帖最后由 lee 于 2020-6-18 16:46 编辑

【考点一】InnoDB 和MYISAM 存储引擎的区别?答:
联机事务处理OLTP(on-line transaction processing):传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
联机分析处理OLAP(On-Line Analytical Processing):是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果
InnoDB:
InnoDB 存储引擎支持事务、支持外键、支持非锁定读、行锁设计其设计主要面向OLTP 应用。
InnoDB 存储引擎表采用聚集的方式存储,因此每张表的存储顺序都按主键的顺序存放,如果没有指定主键,InnoDB 存储引擎会为每一行生成一个6字节的ROWID并以此作为主键。
InnoDB 存储引擎通过MVCC 获的高并发性,并提供了插入缓冲、二次写、自适应哈希索引和预读等高性能高可用功能
InnoDB 存储引擎默认隔离级别为REPEATABLE_READ(重复读)并采用next-key locking(间隙锁)来避免幻读
MySIAM:
MYISAM 存储引擎不支持事务、表锁设计、支持全文索引其设计主要面向OLAP 应用
MYISAM 存储引擎表由frm、MYD 和MYI 组成,frm 文件存放表格定义,MYD 用来存放数据文件,MYI 存放索引文件。MYISAM 存储引擎与众不同的地方在于它的缓冲池只缓存索引文件而不缓存数据文件,数据文件的缓存依赖于操作系统。
操作区别:
MYISAM 保存表的具体行数,不带where 是可直接返回。InnoDB 要扫描全表。
DELETE 表时,InnoDB 是一行一行的删除,MYISAM 是先drop表,然后重建表
InnoDB 跨平台可直接拷贝使用,MYISAM 不行
InnoDB 表格很难被压缩,MYISAM 可以
选择:
      MyISAM相对简单所以在效率上要优于InnoDB。如果系统读多,写少。对原子性要求低。那么MyISAM最好的选择。且MyISAM恢复速度快。可直接用备份覆盖恢复。
InnoDB 更适合系统读少,写多的时候,尤其是高并发场景。

      以下是一个具体的选择场景来自:https://www.iidba.com/thread-290065-1-1.html
【考点二】什么是索引?你知道Mysql 有哪些索引?分别介绍一下
游客,如果您要查看本帖隐藏内容请回复




标签: 暂无标签
lee

写了 24 篇文章,拥有财富 103,被 4 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2020-6-18 19:02:00
6666666666666
回复

使用道具

P3 | 发表于 6 天前
没有PDF,不好下载呀!!!
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈