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存储引擎:适合做查询、写入

posted @ 2016-07-15 17:58  z2168465  阅读(120)  评论(0)    收藏  举报