MySQL 储存引擎 MyISAM 和 InnoDB 配置
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,MySQL 存储引擎 MyISAM 和 InnoDB 配置MyISAM 和 InnoDB 最大特点:MyISAM :① 不支持事务 。② 表级锁定形式 ,数据在更新时锁定整个表 。③ 不支持外键约束
千家信息网最后更新 2026年11月01日MySQL 储存引擎 MyISAM 和 InnoDB 配置
MySQL 存储引擎 MyISAM 和 InnoDB 配置
MyISAM 和 InnoDB 最大特点:
MyISAM :
① 不支持事务 。
② 表级锁定形式 ,数据在更新时锁定整个表 。
③ 不支持外键约束 ,只支持全文索引 。
④ 数据库在读取过程中相互阻塞 。
⑤ 数据单独写入或读取 , 速度较快且占用资源相对要少 。
InnoDB:
① 支持事务 。
② 行级锁定 ,但是全表扫描仍然会是表级锁定 。
③ 支持分区、表空间 ,类似Oracle 数据库 。
④ 读写阻塞与事务隔离级别相关 。
⑤ 表与主键以簇的方式储存 。
⑥ 具有非常高效的缓存特性 ,能缓存引索 ,也能缓存数据 。
如何查看存储引擎:
查看 MySQL 默认存储引擎 :
mysql> show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment | Transactions | XA | Savepoints |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES 查看 MySQL 支持的引擎以及默认存储引擎 。
查看表正在使用的存储引擎 :
方法一:
show table status from 库名 where name='表名';mysql> show table status from jdy where name='test';+------+--------+---------+------------+------+| Name | Engine | Version | Row_format | Rows |+------+-------------+-----------------+--------------+| test | InnoDB | 10 | Dynamic | 0 | # 表的存储引擎 InnoDB方法二:
show create table 表名;mysql> use jdy; # 进入查看表的数据库Database changedmysql> show create table test;+-------+---------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+-------+---------------------------------------------------------------------------------------------------------------------------+| test | CREATE TABLE "test" ( "name" varchar(10) DEFAULT NULL, "id" int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 | # 表的存储引擎 InnoDB如何修改存储引擎:
方法一 :
mysql> use jdy; # 进入查看表的数据库Database changedmysql> show create table test;+-------+---------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+-------+---------------------------------------------------------------------------------------------------------------------------+| test | CREATE TABLE "test" ( "name" varchar(10) DEFAULT NULL, "id" int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 | # 表的存储引擎 InnoDB#命令: alter table 表名 engine=引擎; mysql> alter table test engine=MyISAM; #修改表的存储引擎为 MyISAMQuery OK, 0 rows affected (0.39 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> show create table test;+-------+---------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+-------+---------------------------------------------------------------------------------------------------------------------------+| test | CREATE TABLE "test" ( "name" varchar(10) DEFAULT NULL, "id" int(11) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 | #修改成功方法二 :
修改 MySQL 的配置文件 my.cnf ,指定默认存储引擎
vim /etc/my.cnf[mysqld]default-storage-engine=MyISAM #添加指定默认存储引擎mysql> create table test01 (id int ); #创建表Query OK, 0 rows affected (0.00 sec)mysql> show create table test01;+--------+------------------------------------------------------------------------------------------+| Table | Create Table |+--------+------------------------------------------------------------------------------------------+| test01 | CREATE TABLE "test01" ( "id" int(11) DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 | #创建的新表默认 MyISAM设置默认存储引擎 ,创建的新表将使用 MyISAM 存储引擎 。
方法三 :
创建表的时候指定存储引擎
mysql> create table test02 (id int ) engine=InnoDB;Query OK, 0 rows affected (0.35 sec)mysql> show create table test02;+--------+------------------------------------------------------------------------------------------+| Table | Create Table |+--------+------------------------------------------------------------------------------------------+| test02 | CREATE TABLE "test02" ( "id" int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 | #新表存储引擎是 InnoDB方法四:
使用mysql_convert_table_format 命令批量转换
[root@localhost ~]#mysql_convert_table_format --host=localhost --user=root --password=abc123 --socket=/tmp/mysql.scok --engine=InnoDB jdy test01 test02执行会报错 ,需要安装操作模块
yum install perl perl-DBD-MySQL -y无法转换InnoDB引擎 ,mysql_convert_table_forma命令bug,需要修改命令脚本。
vim /usr/local/mysql/bin/mysql_convert_table_format #修改命令脚本$opt_help=$opt_version=$opt_verbose=$opt_force=0;$opt_user=$opt_database=$opt_password=undef;$opt_host="localhost";$opt_socket="";$opt_engine="MYISAM";$opt_port=0;$exit_status=0;GetOptions("e|engine|type=s" => \$opt_type, #把type修改成engine"f|force" => \$opt_force,"help|?" => \$opt_help,"h|host=s" => \$opt_host,"p|password=s" => \$opt_password,"u|user=s" => \$opt_user,"v|verbose" => \$opt_verbose,"V|version" => \$opt_version,"S|socket=s" => \$opt_socket, "P|port=i" => \$opt_port) || usage(0);ps: 第四种方法只适合MySQL 5.5版本 。MySQL 5.5 默认存储引擎MyISAM 5.7 默认存储引擎 InnoDB。
引擎
存储
数据
方法
支持
命令
数据库
事务
缓存
配置
脚本
阻塞
最大
成功
全文
形式
文件
方式
时候
模块
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网络科技
湖北九亚互联网络科技有限公司
华服互联网科技靠谱吗
互联网科技的
凡科互联网科技
互联网科技缩写
新浪科技互联网
齐家互联网科技有限公司
济南和联互联网科技有限公司
中国互联网有什么科技含量
北京华百购互联网科技有限公司
湖南诚度互联网科技有限公司
合肥互联网科技公司公章图片
科技互联网的核心竞争力
中国互联网有什么科技
安徽零酒互联网科技有限公司
长沙易易互联网科技有限公司
上海旺乐尼互联网科技有限公司
现代科技的标志之一的互联网
广州全民伙伴互联网科技有限公司
涨乐互联网科技
科技企业和互联网企业
互联网巨头反垄断金融科技
互联网金融 科技
互联网科技视频
科技互联网公司logo
互联网科技创新服务
互联网科技项目计划书材料类
成都铂石互联网科技做什么的
2021世界互联网领先科技成果发布