[PHP] Laravel Cache

Cristian80

Nuovo Utente
28 Feb 2019
9
0
1
Ciao a tutti
ho implementato la cache in laravel (sia file che redis)
ho una tabella Customers con 4mila righe e 30 colonne circa tutte piene
sia utilizzando la cache (file o redis che sia), sia caricando la pagina normalmente, il tempo di caricamento della pagina è circa 30 secondi
questo mi fa dedurre che il mio utilizzo di cache sia errato ma da tutti i test che sto facendo non vedo errori
questa è la funzione di test nel mio controller:
PHP:
  public function getCache()
  {

    if (Cache::has('cust')) {

      $customers = Cache::get('cust');

    } else {
   
      $customers = Cache::remember('cust', 10, function () {
        return DB::table('customers')
        ->where('advancement', 'LIKE', "%OK%")
        ->orWhere('advancement', '=', 'ESITO INSERIMENTO NEGATIVO')
        ->get();
      });
     
     
    }
    return view('customer.list.list_field_filter', compact('customers'));
  }
controllando su file o su redis non trovo problemi, la chiave "cust" viene registrata correttamente
la tabella ha come index il campo advancement
30 secondi però sono davvero troppi, considerando che sono solo 4000 righe e che ho eliminato ogni script java possibile
Grazie anticipatamente per l'aiuto che potrete darmi
 
30 secondi però sono davvero troppi
Bhè se carichi nella pagina 4000 righe è normale.... Magari dovresti prevedere l'utilizzo asincrono per il caricamento delle risorse...
Estrai solo i primi 100 elementi e vedi come cambia!

Effettua una prova dal DB e vedi il tempo d'esecuzione....
 
Usando la paginazione non ho problemi, carico 500 linee a pagina e vado velocemente, al momento posso decicere se usare la paginazione o meno (e quante linee caricare) in modo da velocizzare il caricamento della pagina in base alle mie esigenze

il punto è che mi è utile caricarle tutte e 4000 insieme
mi rendo conto che 30 colonne belle cariche non sono poche ovviamente

per quanto riguarda l'utilizzo asincrono mi è sicuramente utile per caricare java e css
Per la tabella riesco a farla popolare in modo asincrono?

Effettua una prova dal DB e vedi il tempo d'esecuzione....
Myql carica rapido pure 4000 righe
effettuando una query con explain il tempo è quasi inesistente
 
È quello che uso :-) ma non popola sicuramente in modo asincrono, non voglio dire una fesseria ma senza utilizzare jquery non credo si possa fare

Il tempo impiegato per visualizzare le risorse è dato sostanzialmente da 2 fattori:
1-Connessione
2-Velocità CPU impiegata per effettuare il rendering della pagina
1: Connessione a 60 Mbit/s
2: il server è uno Xeon D-1520 - 64GB - SoftRaid 2x2To con Linux Centos installato e una banda da 500Mbps
 
non voglio dire una fesseria ma senza utilizzare jquery non credo si possa fare
Il plugin ha l'accesso alle risorse asincrone, se non settato funziona in modo normale....
Qui la doc di DataTable.... https://datatables.net/reference/api/

1: Connessione a 60 Mbit/s
Il server o il client? Se il client ha questa banda è le risorse CPU limitate ci fai ben poco!!!!

il server è uno Xeon D-1520 - 64GB - SoftRaid 2x2To con Linux Centos installato e una banda da 500Mbps
Il rendering lo fa il client e non il server quindi il dato sopra è inutile...
 

Discussioni simili