• 12-02-2020, 14:26:44
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    merhaba arkadaşlar phpmyadminde spor diye tablom var ben buna 150 ve daha fazlası sutun eklemem lazım, onca sutun ne derseniz sporda iy ms korner ilk gol , alt üst, handikaplar,gibi vs. bir çok içerik ekletmem lazım

    iş spor olunca 5 ayda nerdeyse 20000 veri ekleniyor ,bu durum mysql ağırlamasına sebep olurmu en mantıklı ne yapmak lazım?
  • 12-02-2020, 14:29:47
    #2
    Hocam kanımca elden geldikçe normalizasyona uygun tutmanız gerek tabloları. "veritabanı normalizasyon" gibi aratarak daha iyi öğrenebilirsiniz. Ne kadar normalizasyon kurallarına uygun olursa o kadar mysql zorlanmaz diye düşünüyorum. Günümüzde ne örnekler var mysql'i ağlatması gereken ama son derece hızlı olan.

    Kolay gelsin
  • 12-02-2020, 15:10:50
    #3
    emrecanozkan adlı üyeden alıntı: mesajı görüntüle
    Hocam kanımca elden geldikçe normalizasyona uygun tutmanız gerek tabloları. "veritabanı normalizasyon" gibi aratarak daha iyi öğrenebilirsiniz. Ne kadar normalizasyon kurallarına uygun olursa o kadar mysql zorlanmaz diye düşünüyorum. Günümüzde ne örnekler var mysql'i ağlatması gereken ama son derece hızlı olan.

    Kolay gelsin
    saydım toplamda 126 sutun oluyor , veritabanı normalizasyon araştırdım da pek sorun çözücü gibi gelmedi

    mesela veritabanında maçta toplam golleri tek tek sutunlarda tutuyorum bunun gibi toplam 126 sutun

    05golalt
    05golust
    15golalt
    15golust
    25golalt
    25golust
    35golalt
    35golust
    45golalt
    45golust
    55golalt
    55golust

    ben bunu goller diye sutun açıp eklerken sırası ile virgül koyarak ekletmek veritabanını rahatlatırmı yoksa rahatlatmazmı ?

    11.0,1,25,5,50,11,00,1,70,2,20,3,30
  • 12-02-2020, 16:53:29
    #4
    virgül koyarak büyük oranda optimize etmiş olursunuz.
  • 12-02-2020, 16:59:05
    #5
    Şöyle de yapabilirsin ; Maç ismini maclar diye bi tablo oluştur oraya kaydet. Golleri de maçın id sini göre goller diye bi tablo oluşturup oraya kaydedebilirsin.

    maclar
    id ---- macadi
    1 ----- Galatasaray - Fenerbahçe
    goller
    id - gol_dakikasi - macid
    123 -- 20 -- 1

    Çekerkende goller tablosundan macid si o maça ait olan id ye göre çektirebilirsin.
    • tarantula901
    tarantula901 bunu beğendi.
    1 kişi bunu beğendi.
  • 12-02-2020, 20:22:54
    #6
    Konya adlı üyeden alıntı: mesajı görüntüle
    merhaba arkadaşlar phpmyadminde spor diye tablom var ben buna 150 ve daha fazlası sutun eklemem lazım, onca sutun ne derseniz sporda iy ms korner ilk gol , alt üst, handikaplar,gibi vs. bir çok içerik ekletmem lazım

    iş spor olunca 5 ayda nerdeyse 20000 veri ekleniyor ,bu durum mysql ağırlamasına sebep olurmu en mantıklı ne yapmak lazım?
    Performans olarak bir sey diyemem ama best practice olarak kotu bir yaklasim olur.

    Spor tablom dedigini eger maclarin tablosu ise soyle yapabilirsin;

    events, event_odds, odds dye tablolarin olur.

    odds tablosuna iy, ms, alt, ust gibi degerleri kayit edersin.

    event_odds tablosuna ise event_id, odds_id, value seklinde kayit edip temiz bir sekilde tutabilirsin.
  • 12-02-2020, 20:37:03
    #7
    Oran isimlerini ayrı bir tabloada tutarak maç ile oran tablosu arasında pivot tablo kullanıp yapmanız en doğru yol olacaktır hocam.
    Yani sütun olarak tutmaktansa satır olarak kaydedeceksiniz ve ilişkisel veritabanının yaratılma amacına uygun şekilde kullanmış olacaksınız.

    YILMAZ isimli arkadaşın verdiği örnekte olduğu gibi.
  • 12-02-2020, 21:13:45
    #8
    YILMAZ adlı üyeden alıntı: mesajı görüntüle
    Performans olarak bir sey diyemem ama best practice olarak kotu bir yaklasim olur.

    Spor tablom dedigini eger maclarin tablosu ise soyle yapabilirsin;

    events, event_odds, odds dye tablolarin olur.

    odds tablosuna iy, ms, alt, ust gibi degerleri kayit edersin.

    event_odds tablosuna ise event_id, odds_id, value seklinde kayit edip temiz bir sekilde tutabilirsin.
    hocam demek istediğinizi tam olarak anlıyamadım spor neredeyse hepsi maçların oranları oran olmayan sadece tarih saat bayrak lig mackodu gibi 3-5 sutun geri kalanı tamamen oran sutunu aşağıda spor tablosundaki sutunların bir kısmını yazdım (toplam 126 sutun var) bu durumda dediğiniz mantık nasıl işliyecek?
    id
    hafta
    mackodu
    tarih
    saat
    bayrak
    lig
    mbs
    sms1
    sms2
    evsahibi
    misafir
    ms1
    msx
    ms2
    iy1
    iyx
    iy2
    iy05galt
    iy05gust
    iy15galt
    iy15gust
    iycs1x
    iycs12
    iycsx2
    ikiy1
    ikiyx
    ikiy2
    tek
    cift
    kgvar
    kgyok
    15golalt
    15golust
    alt25
    ust25
    35golalt
    35golust
    bxc
    b2c
    x2c
    sifir1gol
    23gol
    45gol
    6gol
    birdenbir
    birdensifir
    birdeniki
    sifirdanbir
    sifirdansifir
    sifirdaniki
    ikidenbir
    ikidensifir
    ikideniki
    skor1Ms10
    skor1Ms20
    skor1Ms30
    skor1Ms40
    skor1Ms50
    skor1Ms21
    skor1Ms31
    skor1Ms41
    skor1Ms51
    skor1Ms32
    skor1Ms42
    skor1Ms52
    skor1Ms43
    skor1Ms53
    skor1Ms54
    skorxMs00
    skorxMs11
    skorxMs22
    skorxMs33
    skorxMs44
    skorxMs55
    skor2Ms01
    skor2Ms02
    skor2Ms03
    skor2Ms04
    skor2Ms05
    skor2Ms12
    skor2Ms13
    skor2Ms14
    skor2Ms15
    skor2Ms23
    skor2Ms24
    skor2Ms25
    skor2Ms34
    skor2Ms35
    skor2Ms45
    coder63 adlı üyeden alıntı: mesajı görüntüle
    Oran isimlerini ayrı bir tabloada tutarak maç ile oran tablosu arasında pivot tablo kullanıp yapmanız en doğru yol olacaktır hocam.
    Yani sütun olarak tutmaktansa satır olarak kaydedeceksiniz ve ilişkisel veritabanının yaratılma amacına uygun şekilde kullanmış olacaksınız.

    YILMAZ isimli arkadaşın verdiği örnekte olduğu gibi.
    hocam spor tablom zaten nerededeyse tamamı oranlardan oluşuyor, pivot tablo nedir hocam ?
  • 12-02-2020, 23:21:20
    #9
    Pivot tablo mysql de 2 veya daha fazla tablodaki verileri birbiri ile eşleştiren tablolara verilen addır hocam.
    user tablosu ile city tablosu arasında bağ kurarken user_city adında bir tablo oluşturup ikisi arasında bağ kurabilirsiniz.
    Veya user ile başka herhangi bir tablo arasında bağ kurulacaksa user_any adında tablo oluşturup user_id, model, model_id şeklinde tanımlamalar yaparak kullanılabiliyor.