MySQL的MyISAM转换成InnoDB引擎的两种方法

MySQL的MyISAM转换成InnoDB引擎的两种方法,第1张

MySQL的MyISAM转换成InnoDB引擎的两种方法

今天进入phpMyAdmin的维护数据库时,无意中发现一个数据库中有些表应用的是MyISAM,其他表应用的是InnoDB。我思考过这个问题。一般来说,一个网站数据库中的所有表格都应该使用同一个模块,所以我在思考如何将所有表格高质量地转换成同一个模块。

从万能的搜索引擎mastery到MyISAM和InnoDB模块的区别如下。

MyISAM与InnoDB的区别 InnoDB 米沙姆 适用交易等。 不兼容交易等。 加载时不锁定 适用的外键 不兼容的外键 适用的行锁 不兼容的行锁 不兼容的全文类型索引 适用的全文类型索引 不存储表中的实际行数,而是扫描仪表来测量有多少行 存储了表中的实际行数。如果没有where,立即返回存储的行数。 删除表时,是逐行删除表 ,先把表删除,再重建表 InnoDB在tables空中存储数据信息和索引。 MyISAM表存储在三个文档中,frm文档存储表定义了 混合开发可以立即复制应用 混合开发不能立即复制应用。 InnoDB中必须包含AUTO_INCREMENT字段名的索引表不能约简 MyISAM可以使用AUTO_INCREMENT字段名创建协同索引,表可以约简。

那么,人们是如何选择的呢?

MyISAM:应用程序应该以读取实际 *** 作和插入实际 *** 作为主。只有少数实际 *** 作可以升级和删除,对事务管理的一致性和高并发性要求不是很高。

Zblog,dedecms,Kingdomcms,discuz,emlog等。,它几乎没有读写数据库的能力。

InnoDB:作为事务处理程序来运行,适用于外键。如果应用对事务管理的一致性有更高的要求,则在高并发标准下规定数据信息的一致性。经常删除(InnoDB可以合理减少删除升级带来的锁定),该模块适用于准确性较高的数据信息。

建议Wordpress,joomla,phpBB,Drupal等。更依赖于数据库读写能力。

网站用drupal选择InnoDB更合适。以下是将MyISAM转换为InnoDB的两种经过认证的方法。

a、根据phpmyadmin命令进行转换。

以一个网站数据库为例。

首先登录phpMyAdmin,点击“SQL”。

然后在SQL搜索框中键入命令ALTERTABLEdatabaseTABLEname`ENGINE=INNODB;(后面是小写字母;)例如,要更改照片中的ban_ip表,该命令意味着altertable`ban_IP`engine=innodb;您可以一次一行地更改多个命令。如下图:

然后点击搜索框右下角的“执行”,命令如下成功:

如果实现失败,会有信息提示。检查命令的标点符号是否用英文半角输入,命令中是否也有‘表名’没有空。

第二,将SSH连接应用于linux中的命令转换。

比如今天的数据库客户端名是root,数据库名是tuhongwei_com,数据库登录密码是123456,要更改的数据库表名是ban_ip。

首先连接SSH,输入mysql-uroot-ptuhongwei_com回车键,输入数据库登录密码123456回车键(注意在linux系统软件中不容易被支付密码显示屏提醒)。数据库登录成功后,将显示以下信息:

我也用MariaDB显示信息,如图。如果是MySQL前面的MariaDB,会显示信息MySQL。

然后键入命令altertableban_ipengine=innodb(后面英文半角;别忘了)回车键,成功后实现如下提醒:

也就是说,有两种方法可以将MyISAM转换成InnoDB。相反,将InnoDB转换为MyISAM的方法是相同的,只是engine=MyISAMcommand=MyISAM。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/743803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-29
下一篇 2022-04-29

发表评论

登录后才能评论

评论列表(0条)

保存