1. MySQL数据库用什么存储引擎?区别是?
答案:常见的有MyISAM和InnoDB。
MyISAM:不支持外键约束。不支持事务。对数据大批量导入时,它会边插入数据边建索引,所以为了提高执行效率,应该先禁用索引,在完全导入后再开启索引。
InnoDB:支持外键约束,支持事务。对索引都是单独处理的,无需引用索引
2. 外键的使用需要满足下列的条件:(这里涉及到了InnoDB的概念)
(1). 两张表必须都是InnoDB表,并且它们没有临时表。
注:InnoDB是数据库的引擎。MySQL常见引擎有两种:InnoDB和MyISAM,后者不支持外键。
(2). 建立外键关系的对应列必须具有相似的InnoDB内部数据类型。
(3). 建立外键关系的对应列必须建立了索引。
(4). 假如显式的给出了CONSTRAINT symbol,那symbol在数据库中必须是唯一的。假如没有显式的给出,InnoDB会自动的创建。
3. 表连接类型和区别
内连接(INNER), 外连接(LEFT, RIGHT, FULL), 交叉连接(CROSS), 自连接
外连接不仅列出与连接条件(on)相匹配的行,还列出左表table1(左外连接)、或右表table2(右外连接)、或两个表(全外连接)中所有符合WHERE过滤条件的数据行。一般都是用左连接或者外连接。
MySQL数据库用什么存储引擎?区别是?