Buongiorno programmatori, ho un problema con una query SQL che perde tantissimo tempo, ho un sito di un autoscuola che ha i quiz esame e i quiz normali della patente , in una sola tabella "sync" di dimensione molto grande raccoglie tutti i quiz fatti di tutti gli allievi di tutte le autoscuole,
io vorrei guardare l'ultma dataFine dei quiz ed eseguire la query in poco tempo perchè così alla chiamata ajax che scarica il dato ci mette davvero troppo tempo, la query che utilizzo è la seguente:
"SELECT `dataFine` as 'UltimoAccesso' FROM sync WHERE id_allievo = ". $id_allievo. " ORDER BY `dataFine` DESC LIMIT 1";
C' è un modo per migliorare la performance della query?
Qui sotto la pagina php:
codice:<?php require('../../includes/config.php'); require('../../includes/necaDB.php'); $id_allievo = $_POST['id_allievo']; $id_sedeClienteNeca = $_POST['id_sedeClienteNeca']; $sql="SELECT `dataFine` as 'UltimoAccesso' FROM sync WHERE id_allievo = ". $id_allievo. " ORDER BY `dataFine` DESC LIMIT 1"; $rows = NecaDB::arraySQL(null, $sql); echo json_encode($rows, true);Qui sotto c è la chiamata ajax della jquery datatable che la gestisce:codice:
IN PIù METTO ANCHE LA FUNZIONE DI FORMATTAZIONE:
codice:$.post("ajax/mediaweb/setData.php", { "id_allievo": data.Codice, "id_sedeClienteNeca": data.id_sedeClienteNeca }, function(data) { data = JSON.parse(data); setFormatdate(row, data, index); }); function setFormatdate(row, data, index) { if (data == undefined || data[0] == undefined || data[0] == "") { row.cells[6].innerHTML = "-"; } else { var date = data[0].UltimoAccesso.split("-"); var date2 = date[2].split("T"); var time = date2[1].split("."); time = time[0]; date = date2[0] + "/" + date[1] + "/" + date["0"]; row.cells[6].innerHTML = date; // + "<br>" + time }codice:
Per favore qualcuno che mi dica cosa posso migliorare , chiedo scusa al team di controllo di html.it ma non sapevo dove scrivere la domadna visto che c è sia PHP che SQl che Javascript e Jquery.