滥觞:赛迪网 作者: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而言,活络性才是要害。
版权声明: 原创作品,允许转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。不然将穷究规律责任。