• 03-03-2020, 20:34:09
    #1
    altta sorguyu yazdım ama şöyle bir durum var veri biraz fazla olduğu için sadece kitapların olduğu db 220 mb filan diğerleri de var tabi burada kategorilere ait kitaplar listeleniyor ve sıkıntı şu çok yavaş açıyor bunu nasıl hızlandırabiliriz ajax ile yapıp sayfa değiştikçe mi yapmak lazım ajaxa girmeden halledebilir miyiz?

    $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; 
    if($page < 1) $page = 1; 
    if($page > $totalPage) $page = $totalPage; 
    $limit = ($page - 1) * $perPage;
    
    $query = $db->prepare("SELECT b.*, bt.tid, bt.bid FROM books b join books_types bt on b.id = bt.bid WHERE b.status = '1' and bt.tid = :tid limit $limit,$perPage");
    $query->execute([
    'tid' => $_GET['id']
    ]);
    $eniyiler = $query->fetchAll();
    
    $types = $db->prepare("SELECT * FROM types order BY sortby ASC");
    $types->execute();
    
    $types2 = $db->prepare("SELECT * FROM types where id = :id");
    $types2->execute([
    'id' => $_GET['id']
    ]);
    $typcek=$types2->fetch(PDO::FETCH_ASSOC);
    
    $showPaginateNumbers = 11;
    
    $minMid = ceil($showPaginateNumbers/2);
    $maxMid = ($totalPage+1) - $minMid;
    
    $pageMid = $page;
    if($pageMid < $minMid) $pageMid = $minMid;
    if($pageMid > $maxMid) $pageMid = $maxMid;
    
    $leftPagination = round($pageMid - (($showPaginateNumbers-1) / 2));
    $rightPagination = round((($showPaginateNumbers-1) / 2) + $pageMid);
    
    if($leftPagination < 1) $leftPagination = 1;
    if($rightPagination > $totalPage) $rightPagination = $totalPage;
  • 03-03-2020, 20:53:04
    #2
    Web Tasarım ve Yazılım
    Sayfalama yapabilirsin her sayfada 15 veya 20 tane veri göstererek yapabilirsin.
  • 05-03-2020, 00:22:29
    #3
    status ve tid alanlarına index ver, sorun hala devam ederse server konfigurasyonunu gözden geçir. büyük datalarda sağlam bir server kullanman gerekir. yoksa yavaşlık kaçınılmaz olacaktır.