![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Macie jakis pomysl jak mozna skasowac z jednej tabeli (zawiera 20mln rekordow) wpisy ktorych id sa w drugiej tabeli okolo 6mln wpisow. Tabele sa typu MEMORY z indexem na ID. Zapytanie jakiego uzywam trwa wiecznosc (okolo 10 minut) na 2x 4 rdzeniowych prockach 2.8GHz
-------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Kod DELETE tabela_1 FROM tabela_1 CROSS JOIN tabela_2 USING (id)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
niestety dalej wolno ... ma ktos inny pomysl?
-------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A te tabel przynajmniej mieszczą Ci się w pamięci w całości?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A teraz policz ile razy wykona się podzapytanie w tym zapytaniu.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
A teraz zobacz, że kolega szuka alternatywy dla swojego zapytania. Może zamiast dogryzać podałbyś lepsze rozwiązanie?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Nie dogryzam. Krytykuję, a to nie to samo
![]() Pytam czy tabele mieszczą się w całości w pamięci, bo jeśli nie, to MySQL zrzuca je na dysk w postaci MyISAM, ale z indeksem typu HASH, który do takiego usuwania nadaje się raczej średnio. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem o co dokladnie pytasz:)
Wiec napisze tak: Tabele typu MEMORY - 1 GB , i okolo 200MB druga Pamiec na serwerze 48GB Przydzial pamieci na tabele MEMORY 8GB Teraz jesli mozesz to prosze o wytlumaczenie co w my.ini odpowiada za przetworzenie tego w pamieci:). Pamiec na serwerze moge maxymalnei do 64GB ustawic wiec damy rade.. tylko pytanie CO I JAK:) bo juz mi sie pomysly koncza. -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj na początek ustawić im indeks BTREE.
Nie dogryzam. Krytykuję, a to nie to samo ![]() Pytam czy tabele mieszczą się w całości w pamięci, bo jeśli nie, to MySQL zrzuca je na dysk w postaci MyISAM, ale z indeksem typu HASH, który do takiego usuwania nadaje się raczej średnio. Bleh. Ale bzdurę napisałem. To dotyczy tylko tymczasowych tabel tworzonych wewnętrzenie przez MySQL (które też są typu MEMORY). Cytat
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:40 |