简单概述MySQL执行流程以及存储引擎的选择。
MySQL
执行流程
存储引擎
- 常用的数据库引擎有
InnoDB
、MyISAM
、MEMORY
等,其中 InnoDB 支持事务功能,而 MyISAM 不支持事务,但 MyISAM 拥有较高的插入和查询的速度。而 MEMORY 是内存型的数据库引擎,它会将表中的数据存储到内存中,因为它是内存级的数据引擎,因此具备最快速的查询效率,但它的缺点是,重启数据库之后,所有数据都会丢失,因为这些数据是存放在内存中的。
如何选择数据库引擎
- 我们最常用的数据库引擎是InnoDB,它是MySQL5.5.5之后的默认引擎,其优点是支持事务,且支持4种隔离级别。
- 读未提交:也就是一个事务还没有提交时,它做的变更就能被其他事务看到。
- 读已提交:指的是一个事务只有提交了之后,其他事务才能看得到它的变更。
- 可重复读:此方式为默认的隔离级别,它是指一个事务在执行过程中(从开始到结束)看到的数据都是一致的,在这个过程中未提交的变更对其他事务也是不可见的。
- 串行化:是指对同一行记录的读、写都会添加读锁和写锁,后面访问的事务必须等前一个事务执行完成之后才能继续执行,所以这种事务的执行效率很低。
- MyISAM 引擎是 MySQL 原生的引擎,但它并不支持事务功能,这也是后来被 InnoDB 替代为默认引擎的主要原因。MyISAM 有独立的索引文件,因此在读取数据方面的性能很高,它也支持全文索引、地理位置存储和索引等功能,但不支持外键。