我已经构建了两个查询,如果直接在mysql或phpMyAdmin中运行,最多可以在2或3秒内执行。
phpMyAdmin中的查询1说:
显示行0 - 49(1945总计,查询耗时3.9455秒。)
phpMyAdmin中的查询2说:
显示行0 - 49(总计901,查询耗时2.0582秒。)
然后我构建了一个页面,我在其中运行查询并在表格中打印结果
该页面(与我的应用程序中的所有其他页面一样)通过jQuery加载在容器中打开。 如果我尝试打开页面,我看到mysql开始运行并且永远不会停止(分钟)。如果我停止mysql服务,页面的静态部分将被正确呈现(表头)。正如您在下面的代码中看到的那样,查询没有输入参数或可能产生错误的变量。
页码如下:
<?php
try{
$sql_aperta="
SELECT veicoli.nome as portafoglio, serie.serie, data_acq,
Descrizione, cedente, ammesso, prezzo_acq, originator, gruppo,
COALESCE(sum(incassi_row.importo_inc),0) as flussi
FROM crediti
JOIN azioni_row ON crediti.id_cre = azioni_row.id_cred
JOIN serie ON crediti.cod_serie = serie.id
JOIN sofferenze ON crediti.cod_soff = sofferenze.id_soff
LEFT JOIN incassi_row ON crediti.id_cre = incassi_row.id_cre
JOIN veicoli ON crediti.titolare = veicoli.id
WHERE crediti.stato = 'aperta'
GROUP BY crediti.id_cre";
$dati_aperta = $pdo->query($sql_aperta)->fetchAll();
}
catch(PDOException $e){
$error = 'Errore ad estrarre i dati: '.$e->getMessage();
}
try{
$sql_chiusa="
SELECT veicoli.nome as portafoglio, serie.serie, data_acq,
Descrizione, cedente, ammesso, prezzo_acq, originator, gruppo,
COALESCE(sum(incassi_row.importo_inc),0) as flussi, data_chius,
DATEDIFF(data_chius, data_acq) as coll_time
FROM crediti
JOIN azioni_row ON crediti.id_cre = azioni_row.id_cred
JOIN serie ON crediti.cod_serie = serie.id
JOIN sofferenze ON crediti.cod_soff = sofferenze.id_soff
LEFT JOIN incassi_row ON crediti.id_cre = incassi_row.id_cre
JOIN veicoli ON crediti.titolare = veicoli.id
WHERE crediti.stato = 'chiusa'
GROUP BY crediti.id_cre";
$dati_chiusa = $pdo->query($sql_chiusa)->fetchAll();
}
catch(PDOException $e){
$error = 'Errore ad estrarre i dati: '.$e->getMessage();
}
?>
<div class="titolo">
<h2><span id="home">Sofferenze</span> - <span id="home_int">Track record</span></h2>
</div>
<div class="pagina">
<p><?php echo $data; ?></p>
<table class="report">
<caption class="report">Aggregato aperto</caption>
<tr><th class="report">Portafoglio</th><th class="report">Lotto</th><th class="report">Data acquisizione</th>
<th class="report">Controparte nominativo</th><th class="report">Cedente nominativo</th>
<th class="report">Valore nominale ammesso</th><th class="report">Prezzo</th><th class="report">Cedente originario</th>
<th class="report">Gruppo</th><th class="report">%prezzo/nominale</th><th class="report">Totale flussi</th><th class="report">% flussi/nominale</th></tr>
<?php
foreach($dati_aperta as $ap){
echo '<tr>
<td class="report">'.$ap['portafoglio'].'</td>
<td class="report">'.$ap['serie'].'</td>
<td class="report">'.mysql2table($ap['data_acq']).'</td>
<td class="report">'.$ap['Descrizione'].'</td>
<td class="report">'.prot2name($ap['cedente'],$pdo).'</td>
<td class="report">'.num2cur($ap['ammesso']).'</td>
<td class="report">'.num2cur($ap['prezzo_acq']).'</td>
<td class="report">'.prot2name($ap['originator'],$pdo).'</td>
<td class="report">'.$ap['gruppo'].'</td>
<td class="report">'.num2cur(round($ap['prezzo_acq']/$ap['ammesso']*100,2)).'%</td>
<td class="report">'.$ap['flussi'].'</td>
<td class="report">'.num2cur(round($ap['flussi']/$ap['ammesso']*100,2)).'%</td>
</tr>';
}
?>
</table>
<br><br>
<table class="report">
<caption class="report">Aggregato chiuso</caption>
<tr><th class="report">Portafoglio</th><th class="report">Lotto</th><th class="report">Data acquisizione</th>
<th class="report">Controparte nominativo</th><th class="report">Cedente nominativo</th>
<th class="report">Valore nominale ammesso</th><th class="report">Prezzo</th><th class="report">Cedente originario</th>
<th class="report">Gruppo</th><th class="report">%prezzo/nominale</th><th class="report">Totale flussi</th><th class="report">% flussi/nominale</th>
<th class="report">Data chiusura</th><th class="report">Collection time</th></tr>
<?php
foreach($dati_chiusa as $ch){
echo '<tr>
<td class="report">'.$ch['portafoglio'].'</td>
<td class="report">'.$ch['serie'].'</td>
<td class="report">'.mysql2table($ch['data_acq']).'</td>
<td class="report">'.$ch['Descrizione'].'</td>
<td class="report">'.prot2name($ch['cedente'],$pdo).'</td>
<td class="report">'.num2cur($ch['ammesso']).'</td>
<td class="report">'.num2cur($ch['prezzo_acq']).'</td>
<td class="report">'.prot2name($ch['originator'],$pdo).'</td>
<td class="report">'.$ch['gruppo'].'</td>
<td class="report">'.num2cur(round($ch['prezzo_acq']/$ch['ammesso']*100,2)).'%</td>
<td class="report">'.$ch['flussi'].'</td>
<td class="report">'.num2cur(round($ch['flussi']/$ch['ammesso']*100,2)).'%</td>
<td class="report">'.mysql2table($ch['data_chius']).'</td>
<td class="report">'.$ch['coll_time'].'</td>
</tr>';
}
?>
</table>
</div>