• 04-03-2020, 13:12:54
    #1
    merhaba şöyle bir sorun var aşırı sorgu yavaşlatıyor sorguda mı sorun var tam çözemedim sayfalama yapıyorum ve sql de 300 bin filan ver var yazarlar filan yine bi 500 600 k filan veri ve altta ki sorguda kasıyor nasıl çözebilirim?

    $perPage    = 20;
    $query = $db->prepare("SELECT COUNT(bt.id) total FROM books b join books_types bt on b.id = bt.bid WHERE bt.tid = :tid");
    $query->execute([
    'tid' => $_GET['id']
    ]);
    $totalRow = $query->fetchColumn();
    $totalPage = ceil($totalRow / $perPage);
    $page = isset($_GET['sayfa']) ? (int) $_GET['sayfa'] : 1; // eğer sayfa girilmemişse 1 varsayalım.
    if($page < 1) $page = 1; // eğer 1'den küçük bir sayfa sayısı girildiyse 1 yapalım.
    if($page > $totalPage) $page = $totalPage; // toplam sayfa sayımızdan fazla yazılırsa en son sayfayı varsayalım.
    $limit = ($page - 1) * $perPage;
  • 04-03-2020, 21:11:20
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    benimde 150bin veri vardı her bir veriyi filtreleme yapmam lazımdı sorgularda ağırlık olunca datatables kullanarak sorunu aşmıştım
  • 04-03-2020, 22:25:06
    #3
    sql sorgusunda limit kullanarak çözebilirsin
  • 04-03-2020, 23:46:38
    #4
    tid alanına index ver ve join yerine left join kullan. eğer hala yavaş çalışıyorsa server donanımını yükselt veya my.cnf optimize et. 500-600k data için server konfigurasyonunuz nedir?