系统学习----存储引擎介绍

MySQL存储引擎是什么??

  • Mysql的数据用不同的技术存储在文件(或内存)中。
  • 不同的技术拥有不同的存储机制、索引技巧、锁定水平等等。
  • 通过选择不同的技术获得不同的功能,从而改善应用的整体功能,而这些不同的技术和功能就是存储引擎(也称作表引擎)。

MySQL的存储引擎有哪些??

  • 查看所有的存储引擎:MariaDB [(none)]> SHOW ENGINES \G;
  • 查看默认当前的存储引擎:
        MariaDB [(none)]> show variables like "default_storage_engine";
        +------------------------+--------+
        | Variable_name          | Value  |
        +------------------------+--------+
        | default_storage_engine | InnoDB |     # INNODB
        +------------------------+--------+
        1 row in set (0.01 sec)

INNODB和MyISAM存储引擎的区别

  • 锁机制:INNODB支持行级锁;MySIAM支持表级锁(锁的颗粒度不同)
  • 事务:INNODB支持;MyIASM不支持
  • 外键:INNODB支持;MyISAM不支持
  • MVCC:只有INNODB支持 (MVCC:多版本并发控制机制 -> 基于锁的并发机制)

应用场景:

  1. INNODB:可以进行事务回滚、并发控制等等;所以:并发高、数据一致、更新和删除操作较多、事务的完整提交和回滚
  2. MyISAM:啥都不支持,限制并发能力;所以:读操作和插入操作为主(多读少写)
  3. Memory:特点是将数据存放在内存中,索引的数据结构是Hash方式;而INNODB和MyISAM是B+树这种数据结构;
    所以:针对于单记录查询来说,Memory效率更高,但是对范围查找速度远不如其他两种存储引擎;快速定位记录

如何指定存储引擎:

  1. 创建表的时候指定
create table student(id int(4),name char(8)) engine=xxx;
  1. 修改已经创建表的存储引擎:(尽量少操作,因为表中的数据量非常大的时候,改变存储引擎导致数据存储方式改变可能会导致堵塞)
alter table student engine=xxx; 
  1. 指定默认存储引擎: 配置文件中添加对应参数
    配置文件:/etc/my.cnf | /etc/my.cnf.d/server.cnf
[mysqld]  
default‐storage‐engine=INNODB
发布了49 篇原创文章 · 获赞 6 · 访问量 3686

猜你喜欢

转载自blog.csdn.net/weixin_46097280/article/details/104999691