数据库引擎:

1):插件式存储引擎是MySql数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等。

MySql5.0支持的存储引擎包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CVS、BLACKHOLE、FEDERATED等,其中只有InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。

创建新表时如果不指定存储引擎,系统将使用默认的存储引擎,MySql5.5之前默认的存储引擎是MyISAM,5.5之后改为了InnoDB。如果要修改默认的存储引擎,可以在参数文件中设置default-table-type。

可以通过如下命令查看当前数据库支持的存储引擎:

SHOW ENGINES \G

在创建新表的时候,可以通过ENGINE关键字设置表的存储引擎,如下:

CREATE TABLE country (

  country_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,

  country_name VARCHAR(50) NOT NULL,

  PRIMARY KEY (country_id)

)ENGINE=InnoDB DEFAULT CHARSET=gbk; 

2)、外键的使用需要满足下列的条件:(这里涉及到了InnoDB的概念)

1. 两张表必须都是InnoDB表,并且它们没有临时表。

注:InnoDB是数据库的引擎。MySQL常见引擎有两种:InnoDB和MyISAM,后者不支持外键。

2. 建立外键关系的对应列必须具有相似的InnoDB内部数据类型。

3. 建立外键关系的对应列必须建立了索引。

4. 假如显式的给出了CONSTRAINT symbol,那symbol在数据库中必须是唯一的。假如没有显式的给出,InnoDB会自动的创建。

面试题:你的数据库用什么存储引擎?区别是?

答案:常见的有MyISAM和InnoDB。

MyISAM:不支持外键约束。不支持事务。对数据大批量导入时,它会边插入数据边建索引,所以为了提高执行效率,应该先禁用索引,在完全导入后再开启索引。

InnoDB:支持外键约束,支持事务。对索引都是单独处理的,无需引用索引。

 


 

你可能感兴趣的:(数据库知识)