如何将数据库存储引擎从InnoDB
转为MyISAM
开启MySQL
?我发现很多网站都转换了数据库表的存储引擎,但不是数据库。
提前致谢。
用这个!!
SET storage_engine=MYISAM;
ALTER TABLE table_name ENGINE = MyISAM;
-干杯!!
ALTER TABLE `table_name` ENGINE=INNODB
您无法更改数据库的默认存储引擎,但您可以使用default-storage-engine
配置设置为整个服务器更改它。请注意,这实际上不会更改现有表的存储引擎,只是更改后创建的新表。
数据库只是 MySQL 的命名空间方式,因此数据库没有与之关联的引擎,只有表有存储引擎。这就是为什么您可以拥有一个包含多个不同表的数据库,每个表都有不同的引擎。
您必须一一修改每个表才能将它们切换到 InnoDB。
要使其永久化,请添加到 my.cnf (几个位置取决于上下文)
/etc/my.cnf
default-storage-engine= MyISAM
为了安全起见,使用 show databases 输出 db 列表;
就我而言,使用 php 进行快速操作。
$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 更改存储引擎。在表的详细信息视图中。看截图: