Topic: Dideliu tekstu select'o problema

Sveiki

Turiu problema su dideliu txt selectu is db
Skaitykim turiu lentele kurioje yra 1000 irasu, kiekviename ju yra po 100Kb tekta, atsiselectinu 10 tu tekstu tai pirmas selecttas uztrunka 10s..
SHOW processlistas rodo "copyng to tmp table" :( ka daryti kaip sutvarkyt kad nelagintu pirmas selectas po upd ar kokio add ????

Re: Dideliu tekstu select'o problema

Kokia MySQL versija?

Koks lauko tipas?

Kokie indeksai sudėti ant to lauko?

Kokia užklausa (query)?

Ką rodo "EXPLAIN <query>"?

Re: Dideliu tekstu select'o problema

Mysql - 5.0.22 bet bandziau ir ant kito... servo
Lauko tipas LARGETEXT
Indeksu nera bandziau det FULLTEXT beto man ju reikes searchui
Uzklausa SELECT * FROM text_table limit 20

O explain da neziurejau :)

Re: Dideliu tekstu select'o problema

Na kažką konkretaus patarti būtų sunku. Priežaščių gali būti ne viena. Tarkim pas tave trūksta resursų duombazei: procesoriaus ir/arba atminties. Gali būti, kad yra lygegrčių procesų, kurie trukdo tavo užklausai.

Ką aš daryčiau:
a) perkraučiau serverį;
b) pažiūrėčiau ar nieko blogo nerodo "ANALYZE TABLE lentele";
c) pabandyčiau "REPAIR TABLE lentele";
d) paleisčiau "OPTIMIZE TABLE lentele";
e) pasinagrinėčiau kokie atminties buferiai galbūt turi įtakos užklausai ir pabandyčiau juos pareguliuoti (my.ini/my.cnf) (telnetlų buferis, tmp_lentelių buferis ir pan.) - nes 20 kart 100kb = 2Mb, kuriuos serveris turi kažkur laikyti;

Aišku ir būtinai "EXPLAIN EXTENDED SELECT * FROM lentele LIMIT 20"