Jakie są ogólne zasady dotyczące korzystania z indeksów złożonych? Kiedy należy ich używać i kiedy należy ich unikać?Kiedy używać indeksów złożonych?
Odpowiedz
Zapytanie, które wybiera tylko kilka pól, może działać całkowicie w indeksie. Na przykład, jeśli masz indeks (idZamówienia) ta kwerenda wymagałoby odnośnika tabeli:
select Status from Orders where OrderId = 42
Ale jeśli dodać Composite Index na (idZamówienia, status) silnik może pobierać wszystkie potrzebne informacje od indeks.
Sortowanie na wielu kolumnach może korzystać ze złożonego indeksu. Na przykład indeks (Nazwisko, imię) skorzystaliby to zapytanie:
select * from Orders order by LastName, FirsName
Czasami masz niepowtarzalną constrant na wielu kolumnach. Powiedz na przykład, że każdego dnia restartujesz numery porządkowe. Wtedy OrderNumber nie jest unikalny, ale jest (OrderNumber, OrderDayOfYear). Możesz wymusić to za pomocą unikalnego indeksu złożonego.
Jestem pewna, że istnieje wiele więcej zastosowań dla indeksu złożonego, a jedynie kilka przykładów.
Indeksy złożone są przydatne, gdy zapytania SELECT często używają tych kolumn jako kryteriów w klauzulach WHERE. Poprawia szybkość pobierania. Powinieneś ich unikać, jeśli nie są konieczne.
Ta article dostarcza naprawdę dobrych informacji.
+1 za artykuł –
+1 za dobre referencje. Czy istnieje jakiś podobny artykuł dla Oracle? – hsalimi
- 1. Przebudowywanie indeksów SQL - kiedy?
- 2. Sfinks - Kiedy używać "has" i "indeksów" dla pól
- 3. Jak używać indeksów Spark ORC?
- 4. Kiedy używać node.js i kiedy używać ajax?
- 5. kiedy używać zadania i kiedy używać wątku?
- 6. Kiedy używać viewDidLoad i kiedy używać awakeFromNib
- 7. Jak używać indeksów Solr z Elasticsearch
- 8. Kiedy używać Formatera wartości i kiedy używać Resolvera wartości
- 9. PHP: Kiedy używać funkcji i kiedy używać metod statycznych?
- 10. Kiedy używać undef_method i kiedy używać metody remove_method?
- 11. Kiedy używać komponentów Seaside i kiedy używać prostych obiektów renderowania?
- 12. Kiedy używać tablicy bajtów i kiedy używać strumienia?
- 13. Kiedy używać LEFT JOIN i kiedy używać INNER JOIN?
- 14. Konwencja dotycząca celu C: kiedy używać i kiedy używać z
- 15. Kiedy należy używać JCR i kiedy należy używać JPA/RDBMS?
- 16. Kiedy używać Class.isInstance() i kiedy używać operatora instanceof?
- 17. Kiedy używać Requirejs i kiedy używać dołączonego javascript?
- 18. Kiedy używać JMS i kiedy używać usługi REST?
- 19. Kiedy używać algorytmów genetycznych a kiedy używać sieci neuronowych?
- 20. Kiedy używać klienta boto3 i kiedy używać zasobu Boto3?
- 21. Kiedy używać czystej rekursji i kiedy używać pętli/recur?
- 22. Kiedy używać dup i kiedy używać klonu w Ruby?
- 23. Kiedy NIE używać MVVM?
- 24. C++: kiedy używać wskaźników?
- 25. Kiedy używać StringBuilder?
- 26. Kiedy należy używać _aligned_malloc()?
- 27. Kiedy używać języka Processing?
- 28. Kiedy używać kontenera IOC?
- 29. Kiedy używać NSEnumerationConcurrent
- 30. Kiedy używać Akka Microkernel?
gdzie OrderId = 42 => brak potrzeby złożonego, tylko OrderId. Morevoer a composite (Id, OrderId) nie pomoże, może być użyty tylko w zapytaniu za pomocą Id lub Id oraz OrderId. Nie jestem ekspertem od DB, ale nie jestem pewien, czy indeks złożony (jeśli nie jest klastrowany) jest naprawdę przydatny dla wybranego * –
@Guillaume: oznaczał indeks na (OrderId, Status), edytowany w odpowiedzi. – Andomar