向视图中的表添加索引也可以提高性能。假设我们有以下表格:

汽车


编号(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上的索引也可能会有所帮助。

10-06 04:12