indeksy w bazie |
indeksy w bazie |
31.10.2023, 09:33:26
Post
#1
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 18.11.2009 Skąd: Legnica Ostrzeżenie: (20%) |
Witam
Panowie podpowiedzcie, bo nigdzie nie znalazłem jednoznacznej odpowiedzi. Który przykład na zakładanie inkdeksów jest lepszy, szybszy i kiedy ? Ktoś przede mną pozakładał indeksy na bazach danych raz w jeden sposób raz w drugi. A czasem nawet kombinację tych dwóch wariantów. Bardziej chodzi mi o podpowiedź jaką drogą lepiej iść i dlaczego, tak z Waszego doświadczenia. Z tego co widzę w zapytaniach, to w WHERE są te pola na które pozakładane są indeksy. Czasami są to dwa czasami trzy a czasami jedno pole w WHERE. przykład A przykład B |
|
|
1.11.2023, 20:45:29
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 863 Pomógł: 228 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
"Głównym założeniem użycia indeksów jest zwiększenie wydajności bazy danych. Ich nieumiejętne wykorzystanie może jednak doprowadzić do efektów całkowicie odwrotnych. Musimy zatem wspomnieć kiedy powinniśmy ich unikać:
- w przypadku małych tabel; - w przypadku tabel na których dokonujemy częstego wstawiania bądź aktualizowania rekordów; - w przypadku kolumn zawierających dużą liczbę wartości NULL; - w przypadku kolumn, których wartości są często zmieniane." |
|
|
2.11.2023, 07:20:28
Post
#3
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 18.11.2009 Skąd: Legnica Ostrzeżenie: (20%) |
Dziękuje za odp. A dla przykładu, baza danych gdzie jest np. 800 tys rekordów ale updajtowane jest zawsze ostatnie 150 moze 200. Codziennie dochodzi załóżmy 300 pozycji. Ma to sens wg. Ciebie ?
|
|
|
2.11.2023, 09:40:30
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Update'owane czy wstawiane?
-------------------- |
|
|
2.11.2023, 10:43:14
Post
#5
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 18.11.2009 Skąd: Legnica Ostrzeżenie: (20%) |
Może źle się określiłem. Dziennie dochodzi z 300 pozycji nowych.
|
|
|
2.11.2023, 13:20:07
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
800 tys. rekordów to nie jest dużo na MySQL. Nawet w przypadku UPDATE przebudowa indeksu nie powinna stanowić problemu.
Pytanie co ma mieć sens według Ciebie? Z obrazków, które przesłałeś nic nie wynika, bo nie wiadomo czy pozakładane indeksy mają sens, a ten można określić widząc zapytania. -------------------- |
|
|
2.11.2023, 14:31:45
Post
#7
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 18.11.2009 Skąd: Legnica Ostrzeżenie: (20%) |
zapytań jest dużo rozsianych po stronie i ktoś widocznie pozakładał indeksy do każdego z nich. Wszystkie założone indeksy występują w warunkach zapytań.
czasami w warunku jest tylko WHERE p9='cos tam' czasami WHERE p9='cos tam' && p10='cos tam' czasami WHERE p9='cos tam' && p10='cos tam' && p11='cos tam' Lepiej zrobić 3 osobne czy jeden wspólny ? Bardziej szukam logiki ich tworzenia. |
|
|
2.11.2023, 16:41:26
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Obejrzyj sobie https://www.youtube.com/live/f4QShF42c6E?feature=shared
Masz 2 video. Internals i db performance -------------------- |
|
|
14.11.2023, 14:16:23
Post
#9
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 18.11.2009 Skąd: Legnica Ostrzeżenie: (20%) |
Mam problem z tym zapytaniem. Nie wiem jak zaindekesować bazę danych pod takie zapytanie. Podpowiesz ?
w bazie : nr int(11) p1 text p3 varchar(50) p4 text p14 varchar(50) |
|
|
23.11.2023, 11:30:33
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 863 Pomógł: 228 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Nadaj index na każdą kolumnę dla której wyszukujesz jakieś dane.
|
|
|
24.11.2023, 07:28:50
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
W przypadku LIKE '%fraza%' indeksy nie pomogą, ewentualnie w przypadku kiedy lewa część jest stała, np.: LIKE 'fraza%'.
Powinieneś założyć indeks FULLTEXT i używać funkcji MATCH/AGAINST. -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 17:53 |