数据库引擎

2017/10/02 - 数据库

文件格式

MySQL通用(不管什么引擎)物理文件有slow log、query log、表定义文件frm。

InnoDB存储引擎的文件

  • 系统总空间文件,一般是ibdata1/ibdata2(可配置)
  • 用户表空间文件(需要开启 innodbfileper_table),存放的目录是:数据库目录/表名.ibd,如t1.ibd/t2.ibd…。
  • redolog文件(默认存储在系统总空间文件ibdata1)、倒排文件(开启全文索引后会有)

InnoDB和MyISAM的区别

InnoDB支持事务,而MyISAM是非事务引擎;

InnoDB的buffer pool可以缓存索引页和数据页,而MyISAM的key buffer只能缓存索引页,数据页依赖于OS的cache;

InnoDB可以实现行级锁,而MyISAM只能是表级锁。MyISAM的表级锁是个致命的缺陷,会严重降低数据库的并发性,甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作

在5.6之前InnoDB不支持全文索引,5.6也只是支持英文的全文索引,而MyISAM全面支持全文索引;

InnoDB对硬件的利用率较高,如5.6可以使用到64个CPU核等,而MyISAM对硬件的利用率较差,如只能使用一个CPU等。

InnoDB表数据和索引同在一个表空间中,而MyISAM数据文件和索引文件分开存储;

InnoDB支持Crashrecovery,而MyISAM则不支持

5.5.8之前,默认的存储引擎就是MyISAM,但从5.5.8开始,InnoDB为默认的存储引擎

MyISAM引擎行结构模式比较紧凑,磁盘占用较少,高速insert或loaddata。支持全文索引(解决在我们需要用like查询的低效问题),统计表中数据量(count)快。但不支持事务

innoDB高并发读写,支持事务、外键。

索引区别


如果文章对您有帮助,欢迎扫描下方二维码赞助(一分也是爱噢),谢谢

Search

    一分也是爱噢 一分也是爱

    目录