• 24-04-2021, 10:53:35
    #10
    TheKhan arkadaşımız yaptıkları ve önerileri çoğu projede işe yarar nitelikte fakat mysql in php den en az x10 daha hızlı çalışabileceğini unutmamakla birlikte php dahil tüm dillerdeki genel yavaşlık problemleri veritabanı kullanım şekli ve querylerinden kaynaklıdır.
    phpmyadmin query süresi ile php tarafında query süresi arasında ortalama %10 gibi fark kabul edilebilir düzeyde olur, farkın daha yüksek olması genelde kullanılan php sql driverı ve konfigürasyon alakalı olabiliyor.
    aslına bakarsanız şu yaparsanız yavaş şunu yaparsanız hızlı olur diye genel geçer bir şey yok, projeye göre farklılık gösteriyor.
    TheKhan'nın dedği gibi subquerylerden kaçınmak size yarar sağlayabilir, öncesine veritabanı diagramınızı ve indexlerizi, querylerinize ve amacınıza uygun olarak yapmanız gerekiyor, explain ile sql sorgunuzun hangi indexleri kullandığını görebilirsiniz bu sonuçlara göre de 1 saniye süren queryiniz 0.001 saniyeye düşürebilirsiniz, fakat bu da full-text search de pek işe yaramaz.
    sonuç olarak her durumuna uygun farklı çözümler, fikirler olabiliyor. genel bağlamda TheKhan'ın önerilerine %99.9 katılıyorum.
  • 24-04-2021, 11:51:27
    #11
    Çektiğiniz veriyi foreach ile çevirip içerisinde if($veri['type'] != 3) continue;
    Benzeri işlem ile type i 3 olmayanları eleyen bir yapı olabilir
    Ama dediğim gibi bu karmaşık her seferinde sorgunun MySQL i çok yorduğu
    JOIN
    işlemlerinin fazla olduğu sorularda faydalı tek tablo için ayrı sorgu kullanmak hız açısından daha faydalı olur
  • 28-04-2021, 00:30:47
    #12
    Merhaba Şu an sayfa açılış hızımız 0.235 salise fakat optimizasyon olarak bir kaç çeşit var hangisini soruyorsanız yardımcı olacağım.

    1-sunucu optimizasyon
    2-mysql optimize
    3-yazılım optimize
    4-kaynak optimize
  • 28-04-2021, 19:50:08
    #13
    ........
  • 29-04-2021, 12:39:21
    #14
    trgino adlı üyeden alıntı: mesajı görüntüle
    TheKhan arkadaşımız yaptıkları ve önerileri çoğu projede işe yarar nitelikte fakat mysql in php den en az x10 daha hızlı çalışabileceğini unutmamakla birlikte php dahil tüm dillerdeki genel yavaşlık problemleri veritabanı kullanım şekli ve querylerinden kaynaklıdır.
    phpmyadmin query süresi ile php tarafında query süresi arasında ortalama %10 gibi fark kabul edilebilir düzeyde olur, farkın daha yüksek olması genelde kullanılan php sql driverı ve konfigürasyon alakalı olabiliyor.
    aslına bakarsanız şu yaparsanız yavaş şunu yaparsanız hızlı olur diye genel geçer bir şey yok, projeye göre farklılık gösteriyor.
    TheKhan'nın dedği gibi subquerylerden kaçınmak size yarar sağlayabilir, öncesine veritabanı diagramınızı ve indexlerizi, querylerinize ve amacınıza uygun olarak yapmanız gerekiyor, explain ile sql sorgunuzun hangi indexleri kullandığını görebilirsiniz bu sonuçlara göre de 1 saniye süren queryiniz 0.001 saniyeye düşürebilirsiniz, fakat bu da full-text search de pek işe yaramaz.
    sonuç olarak her durumuna uygun farklı çözümler, fikirler olabiliyor. genel bağlamda TheKhan'ın önerilerine %99.9 katılıyorum.
    snaja48 adlı üyeden alıntı: mesajı görüntüle
    Merhaba Şu an sayfa açılış hızımız 0.235 salise fakat optimizasyon olarak bir kaç çeşit var hangisini soruyorsanız yardımcı olacağım.

    1-sunucu optimizasyon
    2-mysql optimize
    3-yazılım optimize
    4-kaynak optimize
    TheKhan adlı üyeden alıntı: mesajı görüntüle
    Ben nasıl yapıyorum:
    • Sorgu süresini PHPMyAdmin üzerinden kontrol ediyorum. Sorguyu oraya yapıştırıyorum ve kaç saniyede sonuçlandığına bakıyorum. Eğer burada süre sayfanın yüklenme hızı ile alakasız ise diğer kodlarda sorun var demektir
    • Sadece gerekli sütunları alıyorum. Gereğinden fazla sütun almak zaten ek yük oluşturur
    • Veritabanı tablolarının indexlerini kullanıyorum. Gerekmedikçe "like" aramaları yapmıyorum, gerek duyacak şekilde verilerimi kaydetmiyor, raporları hazırlamıyorum
    • Veritabanından aynı verileri sürekli çekme gibi birşey var ise onun yerine "dip toplam" tablosu alıyorum. Örneğin X tarihinde Y verisinin durum neydi? gibi bir soru var ise, bu soruyu cevaplamak için istenen verileri başka bir tabloda tek satır olarak kaydediyorum. Muhasebe yazılımlarının genel olarak yaptığı budur, sürekli hesaplama yapılsa o program çalışmaz. Verileri değiştirilemez ve istenildiğinde hızlıca ulaşılacak şekilde kaydederler.
    • Var sayalım 10000 ürün içeren bir tablonun tüm ürünlerini alacağız. Bu durumda sorgumuzda join yada "select (select ....)" gibi iç içe sorgu yazmıyorum. Onun yerine kategori tablosunu ayrıca çekip ayı bir parametrede saklıyorum. Şöyle örnekleyeyim. Araç kiralama firmasında çalışıyorum ve 80 çeşit aracımız var. Günlük işlenen rezervasyon sayısı 1000 civarı var sayalım. İç içe sorgu yada join gibi bir yaklaşımda 1000 satırla beraber 80 satırı her sonuç için tekrar sorgulamam gerekebilir. Onun yerine 80 satırın tümünü alıyorum ve 1000 satırı listelerken dizi indislerini kullanıyorum (Ör: $arac[$rezervasyon['arac_id']]['aracadi'] gibi ). Böyle anlatınca çok ciddi birşey değil gibi durabilir, ancak zaten araç tiplerini başka bir amaç ile çekmiş oluyorum, ek olarak sorguya yazmama gerek kalmıyor.
    • Bir döngüde yapabileceğim işleri en yüksek seviyeye getirmeye çalışıyorum. Aynı veriyi 2 defa foreach'e sokmam performansı düşürecektir. Yine de tekrar döngüye girmesi gerekiyorsa en minimal hali ile yapıyorum.
    • Döngülerde IF ve switch gibi karar fonksyonlarını kullanmakta çekingen davranıyorum, filtreleme yapmam gerekiyorsa bunları veritabanında yapmaya çalışıyorum.
    • PHP çekirdek fonksyonlarını kullanıyorum.
    Sanırım yeterli
    MERHABA ustadlar sımdı mysql php den daha mı hızlı pekı sıte optımızasyonların da bunu nasıl eklentı halıne getırebılırız
    yada bunu eklentı ıle yazar mısınız?
    ucret ne kadar olur
    roceket cache de kullnsam wp sıteler de ornek pagespeed ve gt metrıkse 90 uzerı alsam yıne google https://www.thinkwithgoogle.com/intl...re/testmysite/
    mobıl test aracın da hızlıdır dıye sonuc vermıyor mesela benım sıte 1,2 sanıye sonuc çıksa ortalama derken bazı sıteler 1,5 de çıksa pagespeed puanı berbatta olsa hızlı dıyor
    ve o an karsıam çıkıp merak ıle test ettım sıteye gırıs de bı rahatlık var
    eğer bu dedınız eklentı dahılın da mysql ıle mukemmel bır optımızasyon skoru çıkarabılır ıse ayzdırmak ısterım
    ucretı oğrenmek ısterım

    not bır wp sıtenın dedınız gıbı php ye gore daha hızlı ıse mysql 0,5 saıye cıvarın da açılması ve test sıtelerın dede bu sekılde sonuç vermesını ısterım
  • 29-04-2021, 13:00:43
    #15
    moncen adlı üyeden alıntı: mesajı görüntüle
    MERHABA ustadlar sımdı mysql php den daha mı hızlı pekı sıte optımızasyonların da bunu nasıl eklentı halıne getırebılırız
    yada bunu eklentı ıle yazar mısınız?
    ucret ne kadar olur
    roceket cache de kullnsam wp sıteler de ornek pagespeed ve gt metrıkse 90 uzerı alsam yıne google https://www.thinkwithgoogle.com/intl...re/testmysite/
    mobıl test aracın da hızlıdır dıye sonuc vermıyor mesela benım sıte 1,2 sanıye sonuc çıksa ortalama derken bazı sıteler 1,5 de çıksa pagespeed puanı berbatta olsa hızlı dıyor
    ve o an karsıam çıkıp merak ıle test ettım sıteye gırıs de bı rahatlık var
    eğer bu dedınız eklentı dahılın da mysql ıle mukemmel bır optımızasyon skoru çıkarabılır ıse ayzdırmak ısterım
    ucretı oğrenmek ısterım

    not bır wp sıtenın dedınız gıbı php ye gore daha hızlı ıse mysql 0,5 saıye cıvarın da açılması ve test sıtelerın dede bu sekılde sonuç vermesını ısterım
    - PHP ve MySQL farklı şeyler, programlama dili ile veritabanı sunucusunu kıyas yapamayız. PHP veriyi MySQL'dan aldığı için her türlü daha yavaş olacaktır. Sadece verileri ekrana basacak bir echo bile hız farkı oluşturur
    - PHP ve MySQL optimizasyonu ayrı ayrı yapılır.
    - Cache statik veriler için işe yarar. Günde bir yada birkaç defa değişen sayfalar için cache kullanılabilir, ancak arama sonuçları gibi sayfalar için cache kullanılması doğru olmaz.
    - Site hız testi gibi testler sadece PHP - MySQL ile alakalı testler değildir. Fazladan kullandığınız javascript, css gibi unsurlarda hızı etkiler. Bu tip bir kaygınız varsa sitenizi vanilla-js, tailwind.css/spectre.css ile yapmanız, webpack ve treeshaking dedikleri yöntemi takip etmeniz daha uygun olacaktır.
    Ücretli desteğe ihtiyacınız varsa forumun ilgili bölümlerine ilan verebilirsiniz.
  • 29-04-2021, 13:44:24
    #16
    moncen adlı üyeden alıntı: mesajı görüntüle
    MERHABA ustadlar sımdı mysql php den daha mı hızlı pekı sıte optımızasyonların da bunu nasıl eklentı halıne getırebılırız
    yada bunu eklentı ıle yazar mısınız?
    ucret ne kadar olur
    roceket cache de kullnsam wp sıteler de ornek pagespeed ve gt metrıkse 90 uzerı alsam yıne google https://www.thinkwithgoogle.com/intl...re/testmysite/
    mobıl test aracın da hızlıdır dıye sonuc vermıyor mesela benım sıte 1,2 sanıye sonuc çıksa ortalama derken bazı sıteler 1,5 de çıksa pagespeed puanı berbatta olsa hızlı dıyor
    ve o an karsıam çıkıp merak ıle test ettım sıteye gırıs de bı rahatlık var
    eğer bu dedınız eklentı dahılın da mysql ıle mukemmel bır optımızasyon skoru çıkarabılır ıse ayzdırmak ısterım
    ucretı oğrenmek ısterım

    not bır wp sıtenın dedınız gıbı php ye gore daha hızlı ıse mysql 0,5 saıye cıvarın da açılması ve test sıtelerın dede bu sekılde sonuç vermesını ısterım
    Merhaba bu tavsiyeleri kendim uygulayarak sitelerimde 0.2 saliseleri görüyorum. tecrübelerime dayanarak yazıyorum
    Mysql optimize
    mysql optimizasyon sunucu taraflı güncellenmesi gerekiyor. buradaki ayarlar hassas ayarlardır mevcut sitelerinizi bozabilir.istenirse makale paylaşırım

    Yazılımsal olarak

    echo kullanmanız daha önemlidir print'de ekrana basar ama birisi direk veriyi döndürür diğeri varsayılan veriyi döndürür.
    preg_replace komutu kullanıyorsanız str_replace çok daha performanslıdır.
    require ile çektiğiniz sayfaları require_once ile çekmeniz çok performanslıdır.
    isset, strlen den daha hızlıdır.
    ++$i şeklinde saydırma işleminde $i++; her zaman daha hızlıdır.

    Php de çift tırnak tek tırnak performansı çok etkiler örneğin $deneme["deneme"] veya $deneme[deneme] bu şekilde yapılırsa kodlar süzülürken php burada değişkende sorgulayacaktır. halbüki $deneme['deneme'] bu şekilde tek tırnak yapılırsa sorgulama olmaksızın çok hızlı yükleyecektir.

    herhangi bir döngü yaptığınızda döngünün sınırını üst satırda belirtmek çok yararlı olacaktır.döngü gerektiği kadar çalışarak sayfa açılış hızı etkilenecektir

    kullanılan değişkenler sessıonlar unset ile bitirmek sistemin ömrünü uzatır.

    değişken başlarına @işareti eklemek performansı düşüreceği gibi bunun anlamı hata olsada devam et demektir birnevi gözardı et sistemi tavsiye edilmez.ve sistemi yavaşlatır.
    mysql bağlantılarını mutlaka kapatmanız gerekir.

    Sunucu optimize

    Sunucunuzu optimize ederken şunlara dikkat etmeniz yeterlidir.

    Mümkünse sitelerinizi http2 protokolüne göre ayarlayın. http2 protokolü süper cache ve buna benzer diğer protokollerden çok daha iyidir. çünkü diğer protokoller sitenizdeki css.resim.js dosyalarınıza tek tek istek göndererek yüklemeye çalışıcaktır. http2 protokolü ise istekten önce hepsini sıkıstırarak tek bir sorgudaçağırmaktadır.

    gzip modülünü aktif hale getirmelisiniz. bu modül sitenizin tüm kodlarını 30 sn bir zaman dilimiyle sıkıstırarak sunucunuzda saklar ve müşterinin daha hızlı sayfa açmasına sebeb olur

    resimlerde yeni webp formatını kullanın . dünya istatistiklerine göre yeni formatı google ve başta gelen firmalar kullanıyor. açılış değerleri jpeg den daha iyidir.

    resim,js,css kodlarını optimize edin. js kullanırken örneğin jqeru3.2.1 yerine jquery3.2.1_min.js gibi küütüphaneler kullanın bunlar minimize edilmiş kütüphanelerdir.

    optimize sitesi olan https://tools.pingdom.com/ üzerinden server sayfa açılış sürelerini kontrol edin hangi dosya sitenizi yoruyor engelleyin

    http2 kullandığınızı varsayarak sitenizdeki tüm js css dosyalarını sitenizin kök dizinine yerleşştirin dışarıdan alımda bekleme yapıcaktır.

    lazyload ile resimlerin yüklenmesini engeleyin. sayfa kaydıkça yüklensin

    nginx optimize

    access_logs kapatmanızda yarar var fakat bu bölümdeki değişimler sitenizi bozabileceğinden fazla bir şey yazmak istemiyorum


    html beaty optimize

    çok fazla ileri giderek zorlamak isterseniz html kodlarınızı sıkıstırarak inanılmaz bir performans elde edebilirsiniz.Örneğin <img src="deneme.jpg"> yerine <img src=deneme.jpg> gibi


    Tüm bu optimizasyonlar sonucunda sitelerimizin açılış hızları 0.232 salise , 0.53 salise gibi değerlerdir. Bunlar büyük sitelerde kolay görülemeyecek değerlerdir.
    Yazılım wp veya hazır yazılım değildir. Özel yazılımdır. Bu yazımı ayrı bir konuda açabilirim herkes faydalansın