今天进入phpMyAdmin的维护数据库时,无意中发现一个数据库中有些表应用的是MyISAM,其他表应用的是InnoDB。我思考过这个问题。一般来说,一个网站数据库中的所有表格都应该使用同一个模块,所以我在思考如何将所有表格高质量地转换成同一个模块。
从万能的搜索引擎mastery到MyISAM和InnoDB模块的区别如下。
MyISAM与InnoDB的区别 InnoDB那么,人们是如何选择的呢?
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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)