Php MySql-将InnoDB转换为数据库的MyISAM存储引擎
如何在Php MySql-将InnoDB转换为数据库的MyISAM存储引擎,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,如何在MySQL上将数据库存储引擎从InnoDB转换为MyISAM? 我发现很多网站都转换了数据库表的存储引擎,但不是数据库。 提前感谢。数据库只是MySQL处理名称空间的方式,因为数据库没有与其关联的引擎,只有表有一个存储引擎。这就是为什么您可以拥有一个包含多个不同表的数据库,每个表都有一个不同的引擎 您必须逐个修改每个表以将其切换到InnoDB。您不能更改数据库的默认存储引擎,但可以使用默认存储引擎配置设置更改整个服务器的默认存储引擎。请注意,这实际上不会更改现有表的存储引擎,只会更改更改
MySQL
上将数据库存储引擎从InnoDB
转换为MyISAM
?
我发现很多网站都转换了数据库表的存储引擎,但不是数据库。
提前感谢。数据库只是MySQL处理名称空间的方式,因为数据库没有与其关联的引擎,只有表有一个存储引擎。这就是为什么您可以拥有一个包含多个不同表的数据库,每个表都有一个不同的引擎
您必须逐个修改每个表以将其切换到InnoDB。您不能更改数据库的默认存储引擎,但可以使用
默认存储引擎
配置设置更改整个服务器的默认存储引擎。请注意,这实际上不会更改现有表的存储引擎,只会更改更改后创建的新表。使用此选项
ALTER TABLE `table_name` ENGINE=INNODB
SET storage_engine=MYISAM;
ALTER TABLE table_name ENGINE = MyISAM;
-干杯 若要使其永久化,请添加到my.cnf(根据上下文的不同,位置很少) /etc/my.cnf
默认存储引擎=MyISAM
为了安全起见,请使用
显示数据库
在我的例子中,使用php进行quickie
$db = mysql_connect('localhost','someadmin','somepass');
$dbs = array();
$dbs[] = 'test';
$dbs[] = 'myImportantDb';
foreach($dbs as $v){
mysql_select_db($v);
$q = mysql_query('show tables');
$tables = array();
while($r = mysql_fetch_row($q)){
$tables[] = $r[0];
}
foreach($tables as $t){
echo "do $v.$t\n";
mysql_query('ALTER TABLE `'.$t.'` ENGINE=MyISAM;');
}
}
mysql_close($db);
在PhpMyadmin 4.5中
选择变量选项卡并查找
存储引擎
然后选择编辑并键入MyISAM。您可以通过PhpMyAdmin更改存储引擎。在表的详细信息视图中。请参见屏幕截图:
你是说你已经试过了吗?我想转换数据库而不是表。你给的这个链接是为了转换表而不是数据库。伙计们,如果这个问题有帮助,你可以向上投票,不仅回答…管理员:刚刚开始!感谢您的回答,这对我很有帮助&是的,很抱歉回复太晚。@ArunVM-如果是这样,请发布一个关于如何做到这一点的答案。我知道这可以为服务器或单个表完成,但不能为数据库完成。我想将InnoDB转换为数据库而不是表的MyISAM存储引擎。谢谢。这节省了我很多时间。当我在运行MySQL(mariadb)的Raspberry PI上执行此操作时,当执行大型插入或更新时,系统最终停止锁定。简直快了10倍