Quote Originariamente inviata da Flaviors200 Visualizza il messaggio
Fai tutto lato MySQL!

Ad ogni modo quanto impiega la query ad essere eseguita che senti la necessità di ottimizzarla?
ricerca con: ..WHERE tab_x.nome LIKE '%stringa%' GROUP BY tab.id ORDER BY tab.id: 0,6086 secondi
ricerca con: .. WHERE tab_x.nome LIKE '%stringa%' : 0,4731 secondi

risultati letti da PhpMyAdmin.

Se ricerco con:
WHERE tab_x.nome=LIKE 'stringa%' GROUP BY tab.id ORDER BY tab.id
oppure con:
WHERE tab_x.nome='stringa' GROUP BY tab.id ORDER BY tab.id

la velocità della query torna vicino a 0,0055 secondi

Ovvio, cerco di utilizzare le ricerche LIKE '%stringa%' (per i problemi di ricerca con indice btree sul campo tab_x.nome) solo quando necessario, ma se l'utente vuole, può scegliere anche questo tipo di ricerca.

La select fa delle JOIN tra 4 tabelle e delle LEFT JOIN su altre 3 tabelle
Tabelle innodb, con foreign key ove necessario, indici su tutti i campi di ricerca e sui campi oggetto di join.

dimensione media delle 7 tabelle: 20mila righe ognuna.