MySQL进阶_2.存储引擎

文章目录

  • 第一节、存储引擎简介
  • 第二节、设置表的存储引擎
    • 2.1、创建表时指定存储引擎
    • 2.2、修改表的存储引擎
  • 第三节、存储引擎介绍
    • 3.1、InnoDB
    • 3.2、MyISAM
    • 3.3、InnoDB VS MyISAM

第一节、存储引擎简介

简而言之,存储引擎就是指表的类型。其实存储引擎以前叫做表处理器,后来改名为存储引擎,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

第二节、设置表的存储引擎

2.1、创建表时指定存储引擎

CREATE TABLE 表名(
 建表语句;
) ENGINE = 存储引擎名称;

2.2、修改表的存储引擎

ALTER TABLE 表名 ENGINE = 存储引擎名称;

第三节、存储引擎介绍

3.1、InnoDB

具备外键支持功能的事务存储引擎

优点:

  • MySQL从3.23.34a开始就包含InnoDB存储引擎。 大于等于5.5之后,默认采用InnoDB引擎
  • InnoDB是MySQL的 默认事务型引擎 ,它被设计用来处理大量的短期(short-lived)事务。可以确保事务的完整提交(Commit)和回滚(Rollback)。
  • 除了增加和查询外,如果还需要更新、删除操作,那么,应优先选择InnoDB存储引擎
  • 除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎
  • InnoDB是 为处理巨大数据量的最大性能设计的存储引擎
  • 数据文件结构
    表名.frm 存储表结构(MySQL8.0时,合并在表名.ibd中)
    表名.ibd 存储数据和索引

缺点:

  • 对比MyISAM的存储引擎, InnoDB写的处理效率差一些 ,并且会占用更多的磁盘空间以保存数据和索引。
  • MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据(因为InnoDB将数据和索引放在一个文件中,缓存索引的时候也会缓存数据), 对内存要求较高 ,而且内存大小对性能有决定性的影响。

3.2、MyISAM

主要的非事务处理存储引擎

  • MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM 不支持事务、行级锁、外键 ,有一个毫无疑问的缺陷就是 崩溃后无法安全恢复
  • 5.5之前默认的存储引擎
  • 优势是访问的 速度快 ,对事务完整性没有要求或者以SELECT、INSERT为主的应用
  • 针对数据统计有额外的常数存储。故而 count(*) 的查询效率很高
  • 应用场景:只读应用或者以读为主的,数据量不大的业务
  • 数据文件结构
    表名.frm 存储表结构
    表名.MYD 存储数据 (MYData)
    表名.MYI 存储索引 (MYIndex)

3.3、InnoDB VS MyISAM

你可能感兴趣的:(MySQL,mysql,数据库,InnoDB,MyISAM,MEMORY,存储引擎)