php sorgu hızlandırma
Merhaba 2 adet epin sitem var 2 siteyi de tek panele bağladım panel çok hantallaşamaya başladı bunu nası hızlandırtabilirim
örnek siparis sayfası.
<table class="table invoice-table" id="myTable">
<thead>
<tr>
<th>
<strong>
<input type="checkbox" class="tumunu-sec" title="Tümünü Seç">
</strong>
</th>
<th scope="col">#Site</th>
<th scope="col">Kullanıcı</th>
<th scope="col">İşlem Tarihi</th>
<th scope="col">Banka</th>
<th scope="col">Miktar</th>
<th scope="col">İşlemler</th>
</tr>
</thead>
<tbody> <?php
$durum = $_GET['no'];
$sql = "SELECT form.*, kullanici.kullanici_ad, banka.ad, banka.iban, web_site.logo, web_site.web_adi
FROM form
JOIN kullanici ON form.kullanici = kullanici.id
JOIN banka ON form.banka = banka.banka_ad
JOIN web_site ON form.site = web_site.typ
WHERE form.durum = '{$durum}' AND form.banka != 'Online_Odeme' AND form.date >= '2023-04-03'";
if (isset($_POST['filtre'])) {
$sql .= " AND form.site = '{$_POST['typ']}'";
}
$sql .= " ORDER BY form.id DESC";
$stmt = $db->prepare($sql);
$stmt->execute();
$form = $stmt->fetchAll();
$toplam = 0;
if ($stmt->rowCount()) {
foreach ($form as $row) {
$toplam += $row['bakiye'];
?> <tr>
<td>
<input type="checkbox" class="form-check-input" name="odeme_id[]" value="
<?= $row['id']; ?>">
</td>
<th scope="row">
<img src="upload/
<?= $row['logo'] ?>" alt="" style="border-radius: 50px;"> <?= $row['web_adi'] ?>
</th>
<td>
<a href="kullanici-detay/
<?= $row['kullanici'] ?>"> <?= $row['kullanici_ad'] ?> </a>
</td>
<td> <?= $row['date'] ?> </td>
<td title="
<?= $row['ad'] ?> ||
<?= $row['iban'] ?>"> <?= $row['banka'] ?> </td>
<td>
<button type="button" class="btn btn-primary" data-userid="
<?= $row['kullanici'] ?>" data-form="
<?= $row['id'] ?>" data-bakiye="
<?= $row['bakiye'] ?>" data-toggle="modal" data-target="#user-modal" data-balance="
<?= $row['bakiye'] ?>"> <?= $row['bakiye'] ?> </button>
</td>
<td style="display: flex">
<a class="btn
<?php if ($row['durum'] == 2) { ?>btn-success
<?php } ?>" <?php if ($row['durum'] == 1 || $row['durum'] == 3) { ?> href="verify.php?verify=
<?= $row['id'] ?>" <?php } else { ?> <?php } ?>> <?php if ($row['durum'] == 1) { ?> Onayla <?php } elseif ($row['durum'] == 3) { ?> Onayla <?php } else { ?> Onaylı <?php } ?> </a>
<a class="btn" href="verify.php?delete=
<?=$row['id']?>"> Sil </a>
</td>
</tr> <?php } ?> <?php if(isset($_POST['filtre'])){?> <tr>
<td colspan="3" align="right">Toplam:</td>
<td> <?=$toplam?> </td>
</tr> <?php } } ?> </tbody>
</table>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Merhaba,
Sorunuza uzun zaman olmuş ama çözülmemiş sorularda gördüğüm için yazmak istedim terkar.
Sorgunuzun performansını artırmak için aşağıdaki adımları düşünebilirsin:
Indexleme: İlgili sütunlarda uygun indexler kullanarak veritabanı sorgularınızın hızını artırabilirsiniz. Özellikle
form.durum
,form.banka
,form.site
, veform.date
sütunları üzerinde indexleme yapabilirsiniz. Ancak, hangi sütunların indexlenmesi gerektiği, veritabanınızın boyutu ve sorgularınıza bağlı olarak değişebilir.Örnek indexleme sorguları:
CREATE INDEX idx_durum ON form (durum); CREATE INDEX idx_banka ON form (banka); CREATE INDEX idx_site ON form (site); CREATE INDEX idx_date ON form (date);
Veritabanı Optimizasyonu: Veritabanı tablolarınızı düzenli olarak optimize etmek, performansı artırabilir. Bu işlem, tablolardaki boş alanları temizler ve veritabanı dosyalarını düzenler.
OPTIMIZE TABLE form; OPTIMIZE TABLE kullanici; OPTIMIZE TABLE banka; OPTIMIZE TABLE web_site;
Veritabanı Bağlantısı: Veritabanı bağlantınızı optimize edebilirsiniz. Bağlantıları sık sık açıp kapatmak yerine, bir bağlantı havuzu kullanmak daha verimli olabilir.
Tek Sorgu İle Veri Çekme: Gerekirse, birden çok sorgu yerine tek bir sorgu kullanarak veriyi çekebilirsiniz. Bu durumda, JOIN ifadelerini ve WHERE koşullarını birleştirerek daha efektif bir sorgu oluşturabilirsiniz.
Veritabanı Sunucusu Performans Ayarları: Veritabanı sunucunuzun performans ayarlarını gözden geçirin. Özellikle veritabanı önbelleği ve sorgu önbelleği gibi ayarlar, performansı artırabilir.
Bu öneriler, sorgularınızın performansını artırmaya yardımcı olabilir. Ancak, performans sorunları çoğu zaman sistem spesifik olduğu için, uygulama ve veritabanı yapınıza özgü optimizasyonları denemelisiniz.