使用MySQL视图来提高性能

Opt*_*mus 2 mysql view

我们假设我有一个products带有deleted字段的表.当一个产品被删除,而不是删除实际记录时,我只需设置deleted为1.通过这样做,我将拥有我日常不需要的大量数据.创建一个只显示未删除产品的视图并查询此视图而不是products表格会增加我的应用程序的性能吗?

Joh*_*ica 6

使用视图不会显着提高性能.
但是,由于视图的语法是固定的,因此它将在第一次选择后缓存查询结果.

但是,查询的结果不再被编入索引,因此如果视图选择了许多行,并且您对视图进行选择,则实际上可能会减慢速度.

备选方案另
一种方法可能是将已删除的产品行移动到单独的deleted_products表中.
或者您可以将表分区为a deletedundeletedpart.

链接:http:
//dev.mysql.com/doc/refman/5.1/en/partitioning.html