赞
踩
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。
InnoDB和MyISAM是MySQL中的两种存储引擎,它们在事务处理、锁定级别、索引结构以及全文索引等方面存在区别:
SELECT COUNT(*)
操作较快;InnoDB没有保存这个信息,需要全表扫描来计算行数。BEGIN
和COMMIT
来控制事务;而MyISAM不涉及事务的自动提交问题。综上所述,InnoDB适合处理并发高及需要事务支持的场景,而MyISAM适合读取密集型的应用且不需要事务支持的情况。在选择存储引擎时,应考虑应用的具体需求,比如是否需要事务支持、并发访问量、是否需要全文索引等因素。
InnoDB引擎作为MySQL的默认存储引擎,拥有以下四大特性:
除了上述特性,InnoDB还具有一个高度优化的缓冲池来减少磁盘I/O操作,以及聚集索引来提高主键查询的效率。这些技术特性共同作用,使得InnoDB成为处理大数据量和需要高并发访问场景下的理想选择。
内存中的doublewrite buffer,大小2M。
物理磁盘上共享表空间中连续的128个页,即2个区(extend),大小同样为2M。
对缓冲池的脏页进行刷新时,不是直接写磁盘,而是会通过memcpy()函数将脏页先复制到内存中的doublewrite buffer,之后通过doublewrite 再分两次,每次1M顺序地写入共享表空间的物理磁盘上,在这个过程中,因为 doublewrite页是连续的,因此这个过程是顺序写的,开销并不是很大。在完成doublewrite页的写入后,再将 doublewrite buffer 中的页写入各个表空间文件中,此时的写入则是离散的。如果操作系统在将页写入磁盘的过程 中发生了崩溃,在恢复过程中,innodb可以从共享表空间中的doublewrite中找到该页的一个副本,将其复制到表空 间文件,再应用重做日志。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。