MySQL是计算机程序罕用的开源数据库管理系统,MySQL技能始终是面试中高频率命中考题,上面一起简略复盘下MySQL基础知识:
MySQL是个反对插拔式的数据库治理系统软件,从存储引擎到解析器都能够被替换,上面以Innodb存储引擎为例进行剖析。
MySQL对内存的治理以页为单位(16k)从磁盘读取到内存的Buffer Pool中,当查问数据时命中数据连同数据搭档一起读到Buffer Pool中,当写数据时,会写到Buffer Pool中和Redo log中,Redo log是顺序存储,存储引擎是随机存储,Redo log被当作数据恢复日志应用,用来记录数据库宕机、失落后数据恢复为主(先预写日志Redo Buffer,再进行刷盘操作),因而Redo log能保证数据的不失落。
Undo log是撑持事务回滚操作的文件系统,当批改数据并且进行刷盘后,回复刷盘前的数据靠Undo log进行记录复原。
Binlog和Redo log有着相似之处,记录批改后的数据,Binlog侧重于逻辑日志,记录对数据内存页地位进行批改,属于Server层,Redo log偏重理论的写数据,属于存储引擎层。MySQL的集群高可用次要靠Binlog日志进行实现。