mysql数据库引擎转换_MySQL的MyISAM转换成InnoDB引擎的两种方法

今日进到phpMyAdmin维护保养数据库时出现意外发觉一个数据库中有一些表应用的MyISAM,另一些表应用的InnoDB,想来想去没明确造成这类难题的缘故,由于一般来说一个网站的数据库全部表应当应用同一种模块,因此惦记着怎样高质量地将全部表转化成同一种模块。

从全能的搜索引擎掌握到MyISAM和InnoDB模块的区别以下。

MyISAM与InnoDB的区别

InnoDB

MyISAM

适用事务处理等

不兼容事务处理等。

不上锁载入

适用外键

不兼容外键

适用行锁

不兼容行锁

不兼容FULLTEXT种类的索引

适用FULLTEXT种类的索引

不储存表的实际行数,扫描仪表来测算有是多少行

储存表的实际行数,不带where时,立即回到储存的行数。

DELETE表时,是一行一行地删掉

DELETE表时,先drop表,随后复建表

InnoDB把数据信息和索引储放在表空间里边

MyISAM表被储放在三个文档,frm文档储放表格界定

混合开发可立即复制应用

混合开发没办法立即复制。

InnoDB中务必包括AUTO_INCREMENT种类字段名的索引表格没办法被缩小

MyISAM中能够 应用AUTO_INCREMENT种类字段名创建协同索引,表格能够 被缩小。

那麼,人们怎样挑选?

MyISAM:运用要以读实际操作和插进实际操作主导,只能非常少的升级和删掉实际操作,而且对事务管理的一致性、高并发性规定并不是很高。

提议zblog、dedecms、王国cms、discuz、emlog这类对数据库读写能力很少的程序流程应用。

InnoDB:用作事务处理程序运行,适用外键,假如运用对事务管理的一致性有较为高的规定,在高并发标准下规定数据信息的一致性。升级删掉等经常(InnoDB能够 合理的减少因为删掉和升级造成的锁住),针对数据信息精确性规定较为高的,此模块合适。

提议Wordpress、joomla、phpBB、Drupal这类较为依靠数据库读写能力的程序流程应用。

一个网站应用drupal搭建的挑选InnoDB更适合,下边出示二种历经认证能用的MyISAM转InnoDB方式。

方式一、根据phpmyadmin命令变换。

以一个网站数据库为例。

最先登陆phpMyAdmin,点“SQL”。

随后在SQL查寻框中键入命令,ALTER TABLE `数据库表名` ENGINE = INNODB; (后边带小写字母;)比如变换照片中的ban_ip表,命令就是说  ALTER TABLE `ban_ip` ENGINE = INNODB; 可一条一行,另外变换好几条命令。以下图:

然后点一下查寻框右下方的“实行”,命令实行取得成功以下:

假如实行失败会有信息提示,查验命令的标点是不是为英语半角键入,也有命令中的 ‘表名’前后左右不带空格符。

方式二、应用SSH联接在linux中命令变换。

比如当今数据库客户名叫root  数据库名叫tuhongwei_com 数据库登陆密码为123456 ,要变换的数据库表名叫 ban_ip。

最先联接SSH,键入 mysql -uroot -p tuhongwei_com回车键,键入数据库登陆密码123456 回车键(留意,在linux系统软件中输入支付密码显示屏不容易提醒),登陆数据库取得成功后以下显示信息:

我也用的MariaDB因此像图中那样显示信息,假如是MySQL 前边的MariaDB就显示信息MySQL。

随后键入命令 alter table ban_ip engine=innodb; (后面英文半角;别忘记)回车键,实行取得成功后以下提醒:

左右就是说MyISAM转InnoDB的二种方式,相反InnoDB转MyISAM方式一样,只不过是将命令中的engine=myisam。

热搜词

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值