一文详解MySQL 存储引擎

  目录

  一、存储引擎概念介绍

  二、MySQL常用的存储引擎

  1、 MyISAM

  1.1 MylSAM的特点

  MyISAM 适合查询、插入为主的应用场景

  串行操作,按照顺序操作,每次在读或写的时候会把全表锁起来

  特性:数据单独写入或读取,速度过程较快且占用资源相对少

  MyIsam 是表级锁定,读或写无法同时进行,但好处是:分开执行时,速度快、资源占用相对较少(相对)

  1.2 MyISAM 表支持 3 种不同的存储格式:

  (1)静态(固定长度)表

  (2)动态表

  (3)压缩表

  1.3 MyISAM适用的生产场景

  MyIsam:适合于单方向的任务场景、同时并发量不高、对于事务要求不高的场景

  2、 InnoDB

  2.1 InnoDB特点

  MySQL从5.5.5版本开始,默认的存储引擎为 InnoDB,5.5 之前是默认myisam (isam)

  2.2 InnoDB适用生产场景分析

  三、MyISAM与InnoDB区别

  1、 统计表行数时

  2、 建立索引时

  3 、删除表时

  四、企业选择存储引擎依据

  1、 需要考虑每个存储引擎提供了哪些不同的核心功能及应用场景

  2、支持的字段和数据类型

  3、锁定类型:不同的存储引擎支持不同级别的锁定

  3.1 表锁定: MyISAM 支持

  3.2 行锁定: InnoDB 支持

  4、索引的支持

  5、 事务处理的支持

  五、存储引擎管理

  1、查看系统支持的存储引擎

  show engines;

  #查看存储引擎

  show variables like '%storage_engine%';

  #查看当前默认的存储引擎

  2、查看表使用的存储引擎

  2.1 方法一

  show table status from 库名 where name='表名'G;

  2.2 方法二

  use 库名;

  show create table 表名;

  3、修改存储引擎

  3.1 方法一:通过 alter table 修改

  use 库名;

  #切换数据库

  alter table 表名 engine = 存储引擎类型;

  #修改存储引擎

  3.2 方法二:通过修改 /etc/my.cnf 配置文件,指定默认存储引擎并重启服务

  配置文件 /etc/my.cnf 修改完后,需要重启服务

  #修改配置文件

  vim /etc/my.cnf

  [mysqld]

  default-storage-engine=INNODB

  #添加此行配置内容

  systemctl restart mysqld.service

  #修改完重启mysql服务

  #注意:此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更。

  3.3 方法三:通过 create table 创建表时指定存储引擎

  use 库名;

  create table 表名(字段1 数据类型,...) engine=MyISAM;

  到此这篇关于一文详解MySQL 存储引擎的文章就介绍到这了,更多相关MySQL 存储引擎内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  您可能感兴趣的文章: