向视图中的表添加索引也可以提高性能。假设我们有以下表格:
汽车
编号(pk)
模型
所有者
轮胎
编号(pk)
身份证
尺寸
CAR_DETAILS(查看)
身份证
所有者
模型
轮胎尺寸
视图在CAR.ID = TYRES.CarID上加入。现在,假设执行了以下查询:SELECT模型,tyreSize从CAR_DETAILS WHERE tyreSize = 19;如果查询索引字段上的视图,TIRES上的索引大小是否对您有好处?
最佳答案
是的,可以在视图查询中使用组成表上的索引。视图通常使用MERGE
算法,该算法基本上将视图查询与定义视图的查询合并。您可以这样想:
视图查询:
SELECT * FROM CAR JOIN TYRES ON (CAR.ID=TYRES.CarID)
查询视图:
SELECT model, tyreSize FROM CAR_DETAILS WHERE tyreSize=19
合并查询:
SELECT model, tyreSize FROM CAR JOIN TYRES ON (CAR.ID=TYRES.CarID) WHERE tyreSize=19
查询并不是真的那样执行,但是它使您了解如何运行查询。在您的情况下,可能会使用tyreSize上的索引。根据您的其他查询,在TYRES.CarID上的索引也可能会有所帮助。