Prvo opis. Ima jedna log tabela, sa 5.7mil rekorda. PHPMyAdmin kaže da je Row length 184 a Row Size 238 B (pretpostavljam da je to prosek).
Podaci zauzimaju 1G a indeksi 300MB
Problem je što se čak i običan "SELECT * FROM velikatabela WHERE foreignKey = 12345" sporo izvršava, treba mu 111 sekundi :(
Koje je najbolje rešenje?
* Da bacim još 2GB RAM na mašinu u nadi da će cela tabela stati u memoriju?
* Da isečem ovu veliku tabelu na više delova, tako da svaki deo može stati u memoriju i onda skupljam podatke pomoću union...
* Neka tajna podešavanja servera ili operativnog sistema?
Pošto je ovo ipak log tabela, ne treba mi brzina pristupa manja od 1s, ali nadam se da je moguće smanjiti ovo na nekih 10-20 sekundi? Analiza logova je vrlo zamorna kada se čeka 2 minuta na odaziv >.<
Za sada planiram drugu opciju. Koji je najbolji način za to sečenje? Napraviti tabelu velikatabela_arhiva1 i onda pustiti insert select da baci stare podatke u arhivu (iz komandne linije)? Da li ima neki brži način? Nadam se da insert select radi samo row-lock, pošto bi table lock nekoliko sati bio... nepoželjan.