innodb数据库批量转换表引擎为MyISAM

成功转换MySQL数据库引擎从MyISAM到InnoDB
本文详细介绍了如何使用MySQL提供的转换脚本将旧的MyISAM数据库表转换为现代的InnoDB引擎,以充分利用其优势。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
//连接数据库
$host='localhost';
$user='mysql_username';   //管理账户
$passwd='mysql_password'; //密码
$db='wordpressdb';  //数据库名称
$link= mysql_connect($host,$user,$passwd);
if (!$link) {
die('Could not connect: '.mysql_error() );
}
 
mysql_select_db( $db,$link ) or die ('can\'t use'. $db . mysql_error());
$result=mysql_query("show tables ") or die( mysql_error());
while($row=mysql_fetch_row($result)){
#echo $row[0];
#var_dump($row);
echo "$row[0] \n";
mysql_query("alter table  $row[0] type='MYISAM'") or die (mysql_error());
}
#var_dump($result);
mysql_close($link);
?>


 

 

MySQL 从 5.5 之后默认引擎是 InnoDB,InnoDB 比 MyISAM 要好不少,但是毕竟庞大臃肿,所以以前都是默认 MyISAM,软硬件资源日渐丰富之后,InnoDB 就被重视了。

如果是老的数据库,用的是 MyISAM 引擎,可以用顺利转换到 InnoDB 引擎。MySQL 提供了一个转换脚本(其实默认是用来给你往回转的 InnoDB –> MyISAM),可以在两种引擎中互换,用法很简单,具体可以自己看 help,这里举例一个刚刚转换过来的表:

注意事项:

1、MySQl 5.5 以后,mysql_convert_table_format 默认是将 InnoDB 转换成 MyISAM,如果要反过来转,用 –engine= INNODB 是不行的(莫名其妙就是不行),要直接修改 /usr/bin/mysql_convert_table_format 脚本,将里头 $opt_engine=”MYISAM”; 改成 $opt_engine=”INNODB”;  然后运行就可以了。

2、不要随便转换 MySQL 自己的数据库(mysql),这个数据库必须是 MyISAM 引擎的。

转载于:https://www.cnblogs.com/xuan52rock/p/4551078.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值