MySQL存储引擎

2017-04-02 08:31:19 4099

存储引擎:不同的存储引擎可以给数据库带来不同的功能和性能。查看当前数据库软件支持哪些存储引擎

mysql> show engines;

在mysql 5.5及以后的版本中,默认的存储引擎是InnoDB,而在5.5之前,默认为MyISAM引擎。

 

MyISAM引擎

MyISAM存储引擎注重速度,但是不支持事务、不支持外键等。

 

MyISAM存储引擎的目录结构

 .frm:存储的是表结构

 .MYD:存储的是表的数据

 .MYI:存储的是表的索引

 

InnoDB存储引擎

支持事务、支持行级锁、支持外键。

该存储引擎在数据库目录下仅会存放表的结构,表的数据存放在/data/mysql目录下的ibdata1文件中,5.6里面索引也存在数据库目录下(.ibd)。

 

InnoDB支持事务:dml操作(insert、update、delete)

    事务满足四个特性:ACID

    1、A——Atomicity 原子性

       一个事务是一个整体,它里面的所有操作要么都做,要么都不做,不可再分割。

    2、C——Consistency 一致性

       事务开始前和结束后,数据库的完整性约束是一致的

    3、I——Isolation 隔离性、独立性

       两个事务之间是互不相干的

    4、D——Durability  持久性

       事务完成之后,对数据库的所有的更改都会持久的保存在数据库中,不会被回滚。

正常来说:事务是可以回滚和提交的。 

 

事务结束的标志:

   1、明确执行commit提交,表示确认更改

   2、明确执行rollback回滚,表示取消所有更改

   3、遇到ddl语句,自动提交(create、alter、drop、truncate)

   4、正常退出,自动提交

   5、异常退出,自动回滚 

 

memory存储引擎:

数据存放在内存中,重启服务之后,数据丢失,一般用于临时表。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: