Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Założenie:
Mam bazę SQL z prostą tabelą (nazwijmy ją "Tab1"):
ID Nazwa FK_KategoriaID
oraz tabelę kategorii (nazwijmy ją "TabKat"):
ID Nazwa
Zakładając że w pierwszej tabeli będę miał np. milion wierszy z kategorią "X" oraz jeden z kategorią "Y", oraz będę miał index założony na ID'ku tabeli ile potrwa zapytanie w stylu:
select * from Tab1 as T1 where Tab1.FK_KategoriaID = JakieśIdKategorii
? Czy SQL jest na tyle mądry że jakoś grupuje sobie wewnętrznie po kluczach obcych i wyszuka to w milisekundę, czy też będzie leciał wszystkie wiersze po kolei?
Pozdrawiam.
Offline
Powinno pójść szybko. Nie wiem czy w milisekundach ale w kilku sekundach powinno dać rade. Jak masz wypaśną maszynę to da radę. Nie jest to skomplikowane zapytanie.
Offline
@hello_world:
Hmmm może troszkę źle zadałem pytanie - wiem że nowy komp przetrwa takie coś w sekundę czy dwie - zastanawiam się tylko czy da się jakoś tak zoptymalizować zapytanie żeby lockup time był stał (lub prawie stały) jeżeli z miliona wierszy potrzebuję dwóch czy trzech. Zdaje się że SQL standardowo zakłada indeksy na kluczach obcych stąd pytanie czy będzie lecieć po kolei czy jakoś wydajniej. Bardziej chyba do osób znających niskopoziomowe optymalizacje na serwerach SQL ;]
Offline
a jaki to silnik... powyżej określonej liczby werszy to właśnie od niego będzie zależało szybkość działania.
Offline
Powiedzmy że M$ SQL Serwer - ale wydaje mi się (może błędnie) że taka optymalizacja powinna się odbywać w każdym popularnym serwerze...
Offline
No to może indeksowanie tabel?
http://di.com.pl/porady/25700,0,Porada_MySQL_a_popr … plikacji.html
Najlepiej jest sobie poeksperymentować.Stworzyć fikcyjną bazę danych i bawić się na niej.
Offline
Strony: 1