内存运行速度比硬盘快很多个数量级,因此在内存上操作数据远快于在硬盘操作数据。redis数据库正是基于这样的考虑而研发的。当然,与硬盘存储不同,内存存储的数据是非持久化的。能不能在MySQL中,也实现以内存数据库的模式快速操作数据呢?
MySQL视图,对用户屏蔽了基本表的某些列,或者封装了复杂的多表连接查询。通过视图,简化了用户操作的复杂度。 从提前编译好的角度,视图还有类似与存储过程的好处,即避免了重复编译,提升了查询速度。
数据库只存储视图的定义,不实际存储视图所对应的数据,如不在内存中长期存储。每次对视图的查询或操作,MySQ根据视图定义进行与视图相关的基本表的查询或操作,而非直接在内存存储中查询或操作。
Memory引擎,是MySQL以内存数据库的模式运行,操作数据速度快。当然,不能持久化存储。使用方法是,在新建表时,选择Memory引擎,而非默认的InnoDB引擎。
笔者开发过程中,一个数据库中,同时采用两种引擎的数据表,以分别达到快速操作部分数据和持久化部分数据的目的。