mysql存储引擎MyISAM和InnoDB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql存储引擎MyISAM和InnoDB相关的知识,希望对你有一定的参考价值。

MyISAM和InnoDB

MyISAM是mysql5.7版本以前使用的存储引擎。
优点用于查询频率较高的场合中 ,例如网站商城的数据提拿等。
缺点是不支持事务,不适宜银行,证券等。
基于表锁定 读取和写入互阻塞


InnoDB是mysql5.7版本使用的存储引擎。
优点支持事务
缺点是对于数据提拿速度没有MyISAM那么快
行锁定 记录 读取和写入互阻塞


mysql> show engines; //查看mysql默认存储引擎

技术分享图片

mysql> show create table list; //查看已创建表list的存储引擎

技术分享图片

mysql> alter table list engine=MyISAM; //修改已存在表的存储引擎为MyISAM

技术分享图片

vim /etc/my.cnf
在mysqld模块下,添加该行
default-storage-engine=MyISAM
重启mysql
此后创建的表都是以MylSAM为默认存储引擎

技术分享图片

技术分享图片

批量更改表
yum install perl-DBI -y
yum install perl-DBD-MySQL -y
要先安装两个包
vim /usr/local/mysql/bin/mysql_convert_table_format //修改该命令的配置文件
"e|engine|type=s" => $opt_engine //32行修改
mysql_convert_table_format --host=localhost --user=root --password=123123 --socket=/home/mysql/mysql.sock --engine=InnoDB school list; //使用该命令批量修改

技术分享图片
技术分享图片
技术分享图片
技术分享图片

再次改为MyISAM
mysql_convert_table_format --user=root --password=123123 --socket=//home/mysql/mysql.sock --engine=MyISAM school list

技术分享图片

注:
批量修改 root --password=自己设置的mysql密码
--socket=编译时指定的路径/mysql.scok
--engine=MyISAM 库 表...

以上是关于mysql存储引擎MyISAM和InnoDB的主要内容,如果未能解决你的问题,请参考以下文章

mysql中myisam,innodb和memory三个存储引擎的区别

MySQL存储引擎MyISAM和InnoDB

浅谈MySQL存储引擎-InnoDB&MyISAM

Mysql存储引擎MyIsAM和InnoDB区别

Mysql存储引擎 MyISAM和InnoDB

mysql存储方式MyISAM 和 InnoDB的区别