Usunięcie zduplikowanych rekordów |
Usunięcie zduplikowanych rekordów |
10.10.2017, 08:42:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) |
W tabeli o strukturze
id|offerId|eventDate|dateCreated|description gdzie w eventDate znajduje się data w formacie '2017-01-01', a w dateCreated data w formacie '2017-01-01 10:00:01' W tabeli znajduje się wiele rekordów dla których wartość w offerId,eventDate i description jest taka sama (błąd w skrypcie powodował, że to samo wydarzenie było dodawane wielokrotnie). Chciałbym usunąć te rekordy ale tak by pozostała jeden dla każdego dnia (eventDate). |
|
|
10.10.2017, 08:53:34
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Zrób backup lub wykonaj zapytanie na kopii. Ten post edytował trueblue 10.10.2017, 09:12:39 -------------------- |
|
|
17.10.2017, 07:47:22
Post
#3
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) |
Sprytne Dziękuje bardzo.
W przypadku MySQL miałem tylko problem ze składnią gdyż w postaci:
Zapytanie generował błąd składni. Dodanie aliasu po DELETE rozwiązało problem.
Sprawa druga to czas wykonywania. Rekordów jest ponad 1 200 000, a objętość tabeli to jakieś 72MB. Na localhost zapytanie trwa i końca nie widać. Jak więc to zoptymalizować przeprowadzić. Czy wprowadzenie indeksu dla eventDate coś polepszy? Wprowadzenie LIMIT? Ten post edytował q3d 17.10.2017, 07:47:58 |
|
|
17.10.2017, 07:51:05
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Indeks na eventDate to dobry pomysł.
-------------------- |
|
|
17.10.2017, 08:36:46
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Możesz też utworzyć nową tabelę , ustawić index unique na te 3 pola, wrzucić tam dane, potem zrobić truncate na poprzedniej i znowu przewalić dane.
|
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 12:09 |