Rafał Plewa

Rafał Plewa Manager IT,
Tourmedica.pl Sp. z
o.o.

Temat: Wolny INSERT do tabeli tymczasowej typu MEMORY

Witam,

Mam problem optymalizacyjny.

1. Wywołuję SELECT na dużej tabeli (hurtownia danych, 10mln rekordów).
2. Zapytaniem tym pobieram 10 kolumn (wszystkie kolumny SMALLINT), zostaje mi zwrócone ok. 12 tysięcy wyników w czasie 0.4 sekundy.
3. Zwrócone dane odrazu ładuję do tymczasowej tabeli MEMORY (INSERT INTO ... SELECT FROM...), co okazuje się trwać aż 5 sekund! Załadowane dane ważą zaledwie 1.6MB. Dodam, że tabela tymczasowa nie ma żadnych indeksów.

Czy naprawdę INSERT 12 tysięcy rekordów do tabeli typu MEMORY musi trwać aż 5 sekund? Wszystko odpalane na szybkim serwerze dedykowanym (kilkanaście corów, 24GB RAM...)

Jak można poradzić sobie z takim problemem? Idea ładowania wyniku SELECTa do tabeli tymczasowej jest taka, aby móc wyniki dalej obrabiać dodatkowymi szybkimi zapytaniami.

Z góry dzięki za sugestie.

konto usunięte

Temat: Wolny INSERT do tabeli tymczasowej typu MEMORY

spróbuj jeszcze zarezerwować sobie odpowiednią ilość pamięci

SET max_heap_table_size = 1024*1024*2;

w tym wypadku 2 MB

Następna dyskusja:

zdarzenie typu create table




Wyślij zaproszenie do