![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 13 Dołączył: 16.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam w tabeli produkty z ich nazwami, do wgrywanych produktow robie dodatkowa kolumne `nazwa_unikalna` gdzie zapisuje tytul obciety do max 50 znakow. Nastepnie mam cos takiego w uproszczeniu:
czyli jezeli napotka drugi i kolejny produkt ktory ma taka sama nazwe unikalna, to usuwa go zeby nie bylo takich samych poduktow w bazie. Problem w tym ze baza ma pareset tysiecy rekordow i funkcja ta wykonuje sie pare minut, czym wiecej produktow przerobi tym bardziej zwalnia. Potrzebuje ja zastapic poleceniem sql, zeby zostawialo pierwszy produkt z taka nazwa a usuwalo nastepne, niestety nie mam pojecia jak to zrobic :/ 7 minut dokladnie wykonuje sie to zapytanie, jakbym zszedl do 2 byloby idealnie ... Ten post edytował Agape 25.08.2016, 15:02:39 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 13 Dołączył: 16.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wlasnie nie chodzi o to ze dlugo sie usuwa, tylko dlugo mieli. Pobieram cala baze (ale tylko id, nazwe i nazwa_unikalna) jednym zapytaniem i czas ktory napisalem jest dla bazy w ktorej nie ma duplikatow, samo sprawdzanie calej bazy tyle zajmuje, mielenie tablicy, nie wiem czy in_array tak dlugo zajmuje czy co ... wiec w php jest jakis problem :/
mysle ze czym wiecej ma wartosci w tablicy, tym dluzej musi je porownywac i dla tego tym tym bardziej zwalnia z czasem wykonywania :/ zrobilem kolumne `id` auto increment i zapytanie:
i po 11 min zabilem proces, w phpmyadmin nawet sie nie dalo wejsc :/ moze dodac index do tej kolumny ? moze cos innego niz in_array ? mecze sie z tym dlugi czas i nie moge dojsc jak to przyspieszyc :/ Ten post edytował Agape 25.08.2016, 15:36:05 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 18:58 |