存储引擎:
可以使用 show variables like'%storage_engine';
show engines;来查看存储引擎
Mysql的常用存储引擎
innoDB 事务型数据库的首选引擎,是Mysql默认的存储引擎
innoDB为Mysql提供了具有提交,回滚,崩溃恢复能力的事务安全存储引擎,它还支持外键约束为数据库提供了较好的一致性,支持行级锁,自带缓冲池,可以将数据和索引缓存到内存中,用于又众多需求高性能的大型数据库站点上。
Mylsam这个是基于isam的存储引擎,并对其进行扩展,它在web,数据仓储和其他应用环境下最长使用的存储引擎之一,它具有高插入和查询速度但是不支持事务。
MEMORY存储引擎将表中的数据存储到内存中为了查询和引用其他表数据快速访问。
在创建表的时候就可以选择搜素引擎如:
create table student(name varchar(20))engine=InnDB charset=‘utf8’
innodb是将一张表存储为两个文件
student.frm 这是表的结构和索引
student.ibd 存储数据 注意这个文件时有限的超出范围后自动创建其他的文件
注意文件时不可以移动的
MyISAM是将一张表存储为三个文件
student.frm 存储表的结构
student.myd 存储数据
student.myi 存储表的索引
这个存储引擎生成的文件是可以任意移动的
关系和外键:
表与表之间
一对一:如在学生表中的有一条课程编号的这个字段,而在课程表中也有编号这个字段,然后这两个表的字段相匹配
一对多:在student表中的一条记录而在课程表中对应着多条记录
多对多:这个需要一个第三方表来作为两张表的交集。
外键:是一种约束为了让数据保持一致性但是注意建立外键会使性能降低 所以说我们一般在显示中尽量不使用外键来约束
格式:时需要在约束的字段中添加一个 foreign key 这个属性
注意添加外键后数据就必须保持一致否则的话数据库会报错。