来源:赛迪网 作者:techyang
按开关
让一切的活络性成为大约的开关是提供应ANSI SQL的MySQL扩展——TYPE参数。MySQL可以让你在表格这一层指定命据库引擎,所以它们偶然分也指的是table formats。上面的示例代码表清晰显了如何树立判别操纵MyISAM、ISAM和HEAP引擎的表格。要注重,树立每个表格的代码是相反的,除了最后的TYPE参数,这一参数用来指定命据引擎。
CREATE TABLE tblMyISAM (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
value_a TINYINT
) TYPE=MyISAM
CREATE TABLE tblISAM (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
value_a TINYINT
) TYPE=ISAM
CREATE TABLE tblHeap (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
value_a TINYINT
) TYPE=Heap
你也可以操纵ALTER TABLE命令,把原有的表格从一个引擎移动到另一个引擎。上面的代码体现了如何操纵ALTER TABLE把MyISAM表格移动到InnoDB的引擎:
ALTER TABLE tblMyISAM CHANGE TYPE=InnoDB
MySQL用三步来完成这一目标。起首,这个表格的一个副本被树立。然后,任何输入数据的改动都被排入行列,同时这个副本被移动到另一个引擎。最后,任何排入行列的数据改动都被送交到新的表格里,而原来的表格被删除。
ALTER TABLE捷径
假如只是想把表格从ISAM更新为MyISAM,你可以操纵mysql_convert_table_format命令,而不需求编写ALTER TABLE表达式。
你可以操纵SHOW TABLE命令(这是MySQL对ANSI范例的另一个扩展)来确定哪个引擎在经管着特定的表格。SHOW TABLE会前往一个带有多半据列的后果集,你可以用这个后果集来盘问获得一切范例的信息:数据库引擎的称呼在Type字段里。上面的示例代码声明');了SHOW TABLE的用法:
SHOW TABLE STATUS FROM tblInnoDB
SHOW TABLE的替换措施
你可以用SHOW CREATE TABLE [TableName]来取回SHOW TABLE可以取回的信息。
最后,假如你想操纵没有被编译成MySQL也没有被激活的引擎,那是没有效的,MySQL不会提示这一点。而它只会给你提供一个缺省名目(MyISAM)的表格。除了操纵缺省的表格名目外,尚有措施让MySQL给出错误提示,但是就面前目今当今而言,假如不克不及肯定特定的数据库引擎可否可用的话,你要操纵SHOW TABLE来搜查表格名目。
更多的选择意味着更好的功能
用于特定表格的引擎都需求从头编译和追踪,思量到这种的分外复杂性,为什么你照旧想要操纵非缺省的数据库引擎呢?答案很简略:要调解排解数据库来餍足你的要求。
可以肯定的是,MyISAM实在实在快,但是假如你的逻辑规划需求事务措置惩罚,你就可以自由操纵支持事务措置惩罚的引擎。进一步讲,因为MySQL可以应允你在表格这一层运用数据库引擎,所以你可以只对需求事务措置惩罚的表格来截止功能优化,而把不需求事务措置惩罚的表格交给愈加笨重的MyISAM引擎。拼凑MySQL而言,活络性才是关键。
版权声明: 原创作品,应允转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。不然将追究法律责任。