Heim Datenbank MySQL-Tutorial filter indexs

filter indexs

Jun 07, 2016 pm 05:43 PM
filter

筛选索引--filter indexs 筛选索引是一种经过优化的非聚集索引,尤其适用于涵盖从定义完善的数据子集中选择数据的查询。筛选索引使用筛选谓词对表中的部分行进行索引。 一:筛选索引与全表索引相比具有以下 优点 : 1.提高了查询性能和计划质量 设计良好的筛

筛选索引--filter indexs

筛选索引是一种经过优化的非聚集索引,尤其适用于涵盖从定义完善的数据子集中选择数据的查询。筛选索引使用筛选谓词对表中的部分行进行索引。

一:筛选索引与全表索引相比具有以下优点

1.提高了查询性能和计划质量
设计良好的筛选索引可以提高查询性能和执行计划质量,因为它比全表非聚集索引小并且具有经过筛选的统计信息。与全表统计信息相比,经过筛选的统计信息更加准确,因为它们只涵盖筛选索引中的行。

2.减少了索引维护开销
仅在数据操作语言 (DML) 语句对索引中的数据产生影响时,才对索引进行维护。与全表非聚集索引相比,筛选索引减少了索引维护开销,因为它更小并且仅在对索引中的数据产生影响时才进行维护。筛选索引的数量可以非常多,特别是在其中包含很少受影响的数据时。同样,如果筛选索引只包含频繁受影响的数据,则索引大小较小时可以减少更新统计信息的开销。

3.减少了索引存储开销
在没必要创建全表索引时,创建筛选索引可以减少非聚集索引的磁盘存储开销。可以使用多个筛选索引替换一个全表非聚集索引而不会明显增加存储需要。

4.设计注意事项
为了设计有效的筛选索引,必须了解应用程序使用哪些查询以及这些查询与您的数据子集有何关联。例如,所含值中大部分为 NULL 的列、含异类类别的值的列以及含不同范围的值的列都属于具有定义完善的子集的数据。以下设计注意事项提供了筛选索引优于全表索引的各种情况。

5.数据子集的筛选索引
在列中只有少量相关值需要查询时,可以针对值的子集创建筛选索引。例如,当列中的值大部分为 NULL 并且查询只从非 NULL 值中进行选择时,可以为非 NULL 数据行创建筛选索引。由此得到的索引与对相同键列定义的全表非聚集索引相比,前者更小且维护开销更低。

eg1:例如,AdventureWorks 数据库中有一个包含 2679 行的 Production.BillOfMaterials 表。EndDate 列只有 199 行包含非 NULL 值,其余 2480 行均包含 NULL。下面的筛选索引将涵盖这样的查询:返回在此索引中定义的列的查询,以及只选择 EndDate 值不为 NULL 的行的查询。


USE AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.indexes
WHERE name = N'FIBillOfMaterialsWithEndDate'
AND object_id = OBJECT_ID (N'Production.BillOfMaterials'))
DROP INDEX FIBillOfMaterialsWithEndDate
ON Production.BillOfMaterials
GO
CREATE NONCLUSTERED INDEX FIBillOfMaterialsWithEndDate
ON Production.BillOfMaterials (ComponentID, StartDate)
WHERE EndDate IS NOT NULL;
GO
筛选索引 FIBillOfMaterialsWithEndDate 对下面的查询有效。您可以显示查询执行计划,以确定查询优化器是否使用了此筛选索引。有关如何显示查询执行计划的信息,请参阅分析查询。


SELECT ProductAssemblyID, ComponentID, StartDate
FROM Production.BillOfMaterials
WHERE EndDate IS NOT NULL;
GO有关如何创建筛选索引以及如何定义筛选索引谓词表达式的详细信息,请参阅 CREATE INDEX (Transact-SQL)。

6.异类数据的筛选索引
表中含有异类数据行时,可以为一种或多种类别的数据创建筛选索引。

eg2:例如,香港虚拟主机,Production.Product 表中列出的每种产品均分配到一个 ProductSubcategoryID,后者又与 Bikes、Components、Clothing 或 Accessories 产品类别关联。这些类别为异类类别,因为它们在 Production.Product 表中的列值并不是紧密相关的。例如,对于每种产品类别,Color、ReorderPoint、ListPrice、Weight、Class 和 Style. 均具有唯一特征。假设会经常查询具有子类别 27-36 的 Accessories。通过对 Accessories 子类别创建筛选索引,可以提高对 Accessories 的查询的性能。

下面的示例对 Production.Product 表中 Accessories 子类别中的所有产品创建一个筛选索引。


USE AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.indexes
WHERE name = N'FIProductAccessories'
AND object_id = OBJECT_ID ('Production.Product'))
DROP INDEX FIProductAccessories
ON Production.Product;
GO
CREATE NONCLUSTERED INDEX FIProductAccessories
ON Production.Product (Name, ListPrice)
WHERE ProductSubcategoryID >= 27 AND ProductSubcategoryID GO
筛选索引 FIProductAccessories 对下面的查询有效,因为查询谓词等效于筛选索引表达式。

SELECT Name, ListPrice
FROM Production.Product
WHERE ProductSubcategoryID BETWEEN 27 AND 36;
GO

7.视图与筛选索引
视图是存储查询定义的虚拟表;与筛选索引相比,其用途更广,功能更强。有关视图的详细信息,请参阅了解视图和使用视图的情况。下表比较了在视图和筛选索引中可以使用的部分功能。

在表达式中允许             视图                     筛选的索引
计算列                           是                             否

联接                              是                             否

多个表                           是                             否

谓词中的简单比较逻辑        是                             是

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So beheben Sie den Fehler „[Vue-Warnung]: Fehler beim Auflösen des Filters'. So beheben Sie den Fehler „[Vue-Warnung]: Fehler beim Auflösen des Filters'. Aug 19, 2023 pm 03:33 PM

Methoden zur Behebung des Fehlers „[Vuewarn]:Failedtoresolvefilter“ Während des Entwicklungsprozesses mit Vue stoßen wir manchmal auf eine Fehlermeldung: „[Vuewarn]:Failedtoresolvefilter“. Diese Fehlermeldung tritt normalerweise auf, wenn wir in der Vorlage einen undefinierten Filter verwenden. In diesem Artikel wird erläutert, wie dieser Fehler behoben werden kann, und es werden entsprechende Codebeispiele aufgeführt. Wenn wir in Vue sind

Was ist das Prinzip und die Registrierungsmethode des Filters in Springboot? Was ist das Prinzip und die Registrierungsmethode des Filters in Springboot? May 11, 2023 pm 08:28 PM

1. Filter Sehen Sie sich zunächst den Standort des Filters auf dem Webserver an. Filter ist eine Kette, die vorher und nachher verbunden ist. Nachdem die vorherige Verarbeitung abgeschlossen ist, wird sie zur Verarbeitung an den nächsten Filter übergeben. 1.1Filterschnittstellendefinition publicinterfaceFilter{//Initialisierungsmethode, die im gesamten Lebenszyklus nur einmal ausgeführt wird. //Filterdienste können erst bereitgestellt werden, wenn die Init-Methode erfolgreich ausgeführt wurde (Fehler wie das Auslösen einer Ausnahme usw.). //Der Parameter FilterConfig wird verwendet, um den Initialisierungsparameter abzurufen publicvoidinit(FilterConfigfilterConfig)throwsServletException;//

So filtern Sie in Java So filtern Sie in Java Apr 18, 2023 pm 11:04 PM

Hinweis 1. Wenn der Lambda-Parameter einen wahren Wert generiert, generiert der Filter (Lambda, der ein boolesches Ergebnis generieren kann) ein Element 2. Wenn ein falscher Wert generiert wird, wird dieses Element nicht mehr verwendet. Beispiel zum Erstellen einer Listensammlung: ListstringCollection=newArrayList();stringCollection.add("ddd2");stringCollection.add("aaa2");stringCollection.add("bbb1");stringC

Analyse visueller CSS-Eigenschaften: Box-Shadow, Text-Shadow und Filter Analyse visueller CSS-Eigenschaften: Box-Shadow, Text-Shadow und Filter Oct 20, 2023 pm 12:51 PM

Analyse der visuellen CSS-Eigenschaften: Box-Shadow, Text-Shadow und Filter Einführung: Im Webdesign und in der Webentwicklung kann CSS verwendet werden, um Elementen verschiedene visuelle Effekte hinzuzufügen. Dieser Artikel konzentriert sich auf die drei wichtigen Eigenschaften von Box-Shadow, Text-Shadow und Filter in CSS, einschließlich ihrer Verwendung und Effektanzeige. Im Folgenden analysieren wir diese drei Eigenschaften im Detail. 1. Box-Shado (Box-Shado) Box-Shado

So integrieren Sie Filter in SpringBoot2 So integrieren Sie Filter in SpringBoot2 May 16, 2023 pm 02:46 PM

Definieren Sie zunächst einen Filter für das Abfangen von Unified Access-URLs. Der Code lautet wie folgt: publicclassUrlFilterimplementsFilter{privateLoggerlog=LoggerFactory.getLogger(UrlFilter.class);@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{H

Detaillierte Erläuterung der CSS-Unschärfeeigenschaften: Filter und Hintergrundfilter Detaillierte Erläuterung der CSS-Unschärfeeigenschaften: Filter und Hintergrundfilter Oct 20, 2023 pm 04:48 PM

Detaillierte Erläuterung der CSS-Fuzzy-Eigenschaften: Filter und Hintergrundfilter Einführung: Beim Entwerfen von Webseiten benötigen wir häufig einige Spezialeffekte, um die visuelle Attraktivität der Seite zu erhöhen. Der Unschärfeeffekt ist einer der häufigsten Spezialeffekte. CSS bietet zwei Unschärfeattribute: Filter und Hintergrundfilter, die zum Unschärfen von Elementinhalten bzw. Hintergrundinhalten verwendet werden. In diesem Artikel werden diese beiden Eigenschaften ausführlich erläutert und einige konkrete Codebeispiele bereitgestellt. 1. Filter

Optionale Klasse in Java 8: So filtern Sie mögliche Nullwerte mit der Methode filter() Optionale Klasse in Java 8: So filtern Sie mögliche Nullwerte mit der Methode filter() Aug 01, 2023 pm 05:27 PM

Optionale Klasse in Java8: So verwenden Sie die filter()-Methode, um möglicherweise Nullwerte zu filtern. In Java8 ist die optionale Klasse ein sehr nützliches Werkzeug, das es uns ermöglicht, möglicherweise Nullwerte besser zu verarbeiten und das Auftreten von NullPointerException zu vermeiden. Die optionale Klasse bietet viele Methoden zum Bearbeiten potenzieller Nullwerte. Eine der wichtigen Methoden ist filter(). Die Funktion der filter()-Methode ist die if-Option

So verwenden Sie Filter zum Formatieren und Verarbeiten von Daten in Vue So verwenden Sie Filter zum Formatieren und Verarbeiten von Daten in Vue Oct 15, 2023 pm 03:50 PM

Verwenden Sie Filter, um Daten in Vue zu formatieren und zu verarbeiten. In Vue können wir Daten mithilfe von Filtern formatieren und verarbeiten. Filter ist eine Funktion, die direkt in der Vorlage aufgerufen werden kann. Sie kann die anzuzeigenden Daten verarbeiten und die verarbeiteten Ergebnisse zurückgeben. In diesem Artikel stellen wir die Verwendung von Filtern zum Formatieren und Verarbeiten von Daten vor und stellen spezifische Codebeispiele bereit. Filter registrieren In der Vue-Instanz müssen wir zuerst einen Filter registrieren, damit er im Modell verwendet werden kann

See all articles