Prima di scomodare il caching c'è un sacco di lavoro da fare, innanzitutto ottimizzazione del database e ove possibile effettuare ciò che si chiama normalizzazione.
Fatto questo poi oltre alle JOIN come già suggerito puoi successivamente affrontare il tuo problema utilizzando VIEW (queste più aumentare le prestazioni ti aiuteranno ad avere un codice PHP più pulito e leggibile) in quanto le logiche di JOIN verranno gestite dal DB.
Cosa importantissima sia quando si usano le JOIN o comunque quando si fanno ricerche e questi è l'adozioni di indici.
Gli indici sono tanto più efficaci tanto più variegata è la "popolazione" del campo. Mi spiego, se in una tabella hai due campi, field1 e field2 dove il primo ha i seguenti valori:
1,2,1,2,1,2,1,2,1,2,1,2,1,2
Ed il secondo i seguenti:
1,2,3,4,5,6,7,8,9,10,11,12
È meglio utilizzare un indice sul secondo campo piuttosto che sul primo, ammesso e concesso che sia un campo utilizzato per fare ricerche o JOIN.
Altre cose interessanti ed importanti da sapere, tra queste due query:
Codice PHP:
SELECT id, id_ticket, id_padre, id_chi_ha_aperto, id_operatore, id_categoria
FROM mytable
WHERE id_ticket = '11111' OR id_ticket = '22222'
Codice PHP:
SELECT id, id_ticket, id_padre, id_chi_ha_aperto, id_operatore, id_categoria
FROM mytable WHERE id_ticket = '11111'
UNION
SELECT id, id_ticket, id_padre, id_chi_ha_aperto, id_operatore, id_categoria
FROM mytable WHERE id_ticket = '22222'
La seconda è più veloce perchè la prima deve creare una tabella temporanea per darti un risultato.
Che altro dire, una volta fatto questo, ci sarebbe da guardare ed ottimizzare il codice.
Indipendentemente da questo comunque, io raccomando sempre di installare sul server dove l'applicazione gira APC, il solo fatto di installarlo ti darà incrementi di prestazioni visibili.
Direi che di cosine da guardare te ne ho date parecchie e anche troppe forse