欢迎投稿

今日深度:

MySQL改变表的存储引擎,MySQL存储引擎

MySQL改变表的存储引擎,MySQL存储引擎


MySQL提供了多种数据库存储引擎,存储引擎负责MySQL数据库中的数据的存储和提取。不同的存储引擎具有不同的特性,有时可能需要将一个已经存在的表的存储引擎转换成另外的一个存储引擎,有很多方法可以完成这种转换,每一种方法都会有优缺点,应当根据实际情况去选择,下面讲述三种转换MySQL表引擎的方法:
ALTER TABLE 转换MySQL表引擎最简单的方法是直接使用ALTER TABLE去修改表的定义。下面的这条语句将mytable表引擎转换成InnoDB mysql>ALTER TABLE mytable ENGINE = InnoDB; 优点:简单、可以使用于任何的表引擎。 缺点:需要执行很长时间,转换的过程是先定义一个新的引擎表,然后把原表中的数据复制过来。在复制的过程中会消耗系统大量的I/O能力,同时还会在原表上加上读锁。所以,在一个非常繁忙的系统中使用这种转换方式是行不通的,纵然这很简单。 另外,需要注意的是,如果使用这种方式转换表引擎会失去和原表引擎相关的特性。例如,将一张InnoDB表转换成MyISAM表,然后再转换成InnoDB表,纵然你什么都没有做,但是原表中的外键将会消失。
导入和导出 为了更好的控制转换的过程,可以是使用mysqldump工具将数据导出到文件,然后修改文件中的CREATE TABLE语句的ENGINE选项,注意修改表名,因为一个数据库中不可能有两个同名的表,即时它们使用不同的存储引擎。 SHELL> mysqldump   -u   用户名   -p   数据库名   表名 > 文件名 vi修改文件中的CREATE TABLE语句 mysql> source 带路径文件名

创建与查询 第三种方式结合了第一种高效和第二种方式安全。不需要导出整个表的数据,而是先创建一个新的存储引擎表,然后利用INSERT....SELECT语法来到数据。 mysql> CREATE TABLE innodb_table LIKE myisam_table ; mysql> ALTER TABLE innodb_table ENGINE = InnoDB ; mysql> INSERT INTO innodb_table SELECT * FROM myisam_table;

对于MYSQL存储引擎的问题

查看默认及支持的存储引擎
mysql> show engines;

查看表的存储引擎
mysql> show create table users;

要修改存储引擎只能在创建表的时候指定或后面修改
CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB

ALTER TABLE engineTest ENGINE = INNODB;

默认存储引擎没办法实时修改(至少我是没发现修改的方法)
 

mysql中的存储引擎怎设置?如果是将INNODB改成MYISAM怎改?还有DOS中的MYSQL,怎保存数据库,表等对象?

1,mysql中的存储引擎如何设置?------------默认是myisam,建表的时候也指定,例如: create table test(id int)engine=innodb;
2,如果是将INNODB改成MYISAM怎样改?--------------------alter table test engine=myisam;
3,还有DOS中的MYSQL,怎样保存数据库,表等对象?-----------------在dos中执行 create database databasename; create table test(id int);这样就生成了库和表;对应的系统文件在mysql的安装目录的data下,数据库名对应一个文件夹。比如 create database testdb,那么就能在data目录下找到testdb目录;表等对象的文件要看具体的引擎,如果是myisam引擎,那么就会有三个文件,test.frm,test.myi,test.myd三个,innodb的话只有一个test.frm结构文件,数据和索引文件都在 ibdata1表空间里。
4,PHP如何和MYSQL连接?是否非要输入代码?有没有别的简单方法如UI式设置-------------------需要你写连接信息,网上给你找了个php连接mysql的例子,你参考下
<?php
$mysql_server_name='localhost'; //改成自己的mysql数据库服务器
$mysql_username='root'; //改成自己的mysql数据库用户名
$mysql_password='198791'; //改成自己的mysql数据库密码
$mysql_database='mydb'; //改成自己的mysql数据库名

$conn=mysql_connect ($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); //从这句开始向下解释

$sql='insert into book (name,pwd) values ("ggg","ggg");';
//这是一个SQL语句: 向book表中插入一条记录

mysql_query($sql);
//执行SQL语句

mysql_select_db($mysql_database,$conn); //选择上面表所在的数据库(这一句应该在上面一句的前面执行)

$result=mysql_query($sql); //这一句完全是多余的,和上面的那一个是一样的!

mysql_close($conn); //关闭数据库连接
echo "Hello!操作成功!"; //显示提示信息

?>
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3003.html NewsArticle MySQL改变表的存储引擎,MySQL存储引擎 MySQL提供了多种数据库存储引擎,存储引擎负责MySQL数据库中的数据的存储和提取。不同的存储引擎具有不同的特性,有时可能需要将一个已经存在...
评论暂时关闭