Mysql存储引擎innodb
innodb
数据库每个数据表的数据设计三方面信息:表结构、数据、索引
技术特点:支持事务、行级锁定、外键
1)表结构、数据、索引的物理存储
表结构文件:

该类型 数据、索引 的物理文件位置:
所有innodb表的数据和索引信息都存储在以下ibdata1文件中

给innodb类型表 的数据和索引创建自己对应的存储空间:
默认情况下每个innodb表的 数据和索引 不会创建单独的文件存储
查看方式:show variables like 'innodb_file_per_table';

设置变量,使得每个innodb表有独特的数据和索引 存储文件:

设置方法: set global innodeb_file_per_table=1;
此时数据表有单独的数据和索引存储文件:
(后期无论innodb_file_per_table的设置状态如何变化,数据表的数据和索引都有独立的存储位置)
2)数据存储顺序
innodb表数据的存储是按照主键的顺序排列每个写入的数据。

该特点决定了该类型表的写入操作较慢。
3)事务、外键
该类型数据表支持事务、外键
事务:把许多写入(增、改、删)的sql语句捆绑在一起,要么执行、要么不执行
事务经常用于与“钱”有关的方面。
四个特性:原子、一致、持久、隔离
具体操作:
start transaction;
许多写入sql语句
sql语句有问题
rollback;回滚
commit;提交
rollback和commit只能执行一个
外键:两个数据表A和B,B表的主键是A表的普通字段,在A表看这个普通的字段就是该表的“外键”,外键的使用有”约束”。
约束:以上两个表,必须先写B表的数据,再写A表的数据
并且 A表的外键取值必须来之B表的主键id值,不能超过其范围。
真实项目里边很少使用“外键”,因为有约束。
4) 并发性
该类型表的并发性非常高
多人同时操作该数据表
为了操作数据表的时候,数据内容不会随便发生变化,要对信息进行“锁定”
该类型锁定级别为:行锁。只锁定被操作的当前记录。
innodb存储引擎:适合做修改、删除
Myisam存储引擎:适合做查询、写入
浙公网安备 33010602011771号