mysql 中myisam存储引擎和innodb存储引擎的差异

     最近一直在看mysql数据库,刚好看到存储引擎这一块,加深了对myisam存储引擎和innodb存储引擎的理解。现在来总结下两种存储引擎的差异。

      所谓存储引擎就是mysql中存储对象(记录和索引)的一种特定的文件结构。存储引擎位于mysql服务器的最底层,直接存储数据。mysql上层的操作依赖于存储引擎的选择. 这样的概念很抽象,有些晦涩,现在让我们通过实际例子来分析两种存储引擎的差异.

    打开mysql客户端,输入 show engines\G 可以查阅mysql支持的存储引擎列表。

   

    现在来具体查看下innodb存储引擎的具体描述:

    自从mysql5.5版本以来,innodb成为mysql的默认存储引擎,这里的描述很清晰的描述了innodb引擎的特点,支持事务,行锁,和外键。这是一种事务安全型的存储引擎,注重数据的安全性和完整性。

       innodb的数据存储格式是数据和索引文件存储在一个表空间内。innodb表的存储文件是由.frm (表结构文件)和表空间文件组成。因为innodb插入数据时要做排序工作,所以插入的效率不高。innodb在处理并发时,有较大优势,支持行锁,很好的实现了多版本并发控制。

       看了上面的解释,大家应该对innodb存储引擎有了一定的了解,下面来说下myisam存储引擎。myisam表在数据存储方式上,数据和索引是分开存储的,主要是由.frm, .myd(数据文件), myi (索引文件)组成,查询和插入的效率较高,在做插入操作时不做排序,但是只支持表锁,在并发性支持上不如innodb。同时有一个致命性的缺陷,不支持事务,在遇到数据库崩溃的情况下,很难恢复。

       看了以上对两种存储引擎的描述,想必大家对两种存储引擎有了一定的了解,两种存储引擎各有优势利弊,但总的来说推荐大家使用innodb存储引擎,在遇到数据库奔溃的情况下能更好的恢复数据,保证生产环境比较稳定的运行。

 

转载于:https://my.oschina.net/u/1251650/blog/725890

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值