在前面一篇内容中,我们讲解了索引的创建。索引作为数据的目录,占用独立的存储空间,可以帮助我们提高查询的速度。
除了使用索引,还有一种方法可以加速查询,尤其是当我们的查询中使用了各种聚合函数,或者进行了特别耗时的数据处理的时候,那就是物化视图。
不过比较遗憾的是,MySQL目前并不支持直接创建物化视图。但了解了其原理,自己实现也是一样的。
概念
物化视图区别与普通视图。普通视图的结果集是在查询的时候生成,一般是在内存中。而物化视图是在建立时将结果集存储到了磁盘中。每次查询时直接读取结果,类似于物理表。
实现
既然已经知道了基础的原理,那么实现起来就比较简单了。
首先是根据需求,建表,即以视图列为基础,建立包含对应列的表。
然后使用存储过程,编写对应的刷新数据的存储过程。
最后在合适的时间调用存储过程即可。
小结
物化视图的意义在于将结果保留了下来,只有第一次查询会比较耗时。后面的查询直接使用其结果,可以大大提高查询速度。