SQL: Czy wyszukiwania są szybsze w identyfikacji różnych wierszy, jeśli przetestowano więcej atrybutów?


0

Biorąc pod uwagę dużą tabelę bazy danych i wiedzę, że unikatowy wiersz z cechami, o których wiesz, jest tam, czy wiersz może być pobrany szybciej, jeśli przetestowanych zostanie więcej atrybutów pod kątem znanych wartości? Czy też wyszukiwanie będzie tak szybkie, jak znalezienie jednego wiersza z jednym polem, w którym znajduje się unikalna wartość, której oczekujesz?

Na przykład, jeśli masz 35 kolumn na stole i znasz wartości, których oczekiwałeś w 34 z tych kolumn, a wiedziałeś, że w jednym z nich znalazłeś unikalny identyfikator, czy zapłaciłbyś wymienić wszystkie znane atrybuty w SELECT?

Jeśli tak, to jak duża lub zróżnicowana byłaby baza danych, aby czas wyszukiwania pokazał wyraźną redukcję?

Czy opłacałoby się używać podkwerend, aby wcześnie wyeliminować niechciane wpisy?

Po prostu ciekawy.


Czy odnosisz się do tabeli bez klucza podstawowego i bez indeksów?
MonkeyZeus

Skutecznie, tak. PK może istnieć, ale nie będzie używany dla SELECT.
gladiola

Musisz to przetestować. Większość baz danych może dostarczyć plan wykonania dla zapytania.
Jama Djafarov

Szybkość zapytania będzie się znacznie różnić w zależności od tego, czy używasz =, LIKElub IN() klauzule w klauzuli where. Wpływ na to będzie miała również średnia wielkość i typ danych w tych 35 kolumnach. Jest absolutnie ZEROWA szansa, że ​​ktokolwiek dostarczy użytecznego wglądu, chyba że ta tabela jest już zbudowana i możesz podać więcej informacji. Ogólnie, jeśli możesz użyć 3 pól w klauzuli where, aby zwrócić tę samą liczbę wierszy co 34 pola, wtedy klauzula 3-field gdzie będzie działać lepiej (ostrzegam, aby wziąć to z ziarnem soli).
MonkeyZeus

OK, zamknę pytanie. Miłego dnia.
gladiola
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.