folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Mysql Anlayamadığım Bir Durum



Mysql Anlayamadığım Bir Durum

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    Herkese selamlar,

    Mysql 5.6 InnoDB tablo yapısı ile ortalama 20 milyon, 50 milyon, 10 milyonluk 3 ayrı veri tabanı mevcut.

    Bu veri tabanlarından özellikle 20 ve 10 milyonluk olanlarda yüksek oranda SELECT, UPDATE ve INSERT kullanılmakta(Anlık 1k sorgu görebiliyor yerine göre). Tüm sorguların hızlı olması için de gereken Varchar sütunlarında indexleme yapılmış durumda. Ve sistem gayet stabil sorunsuz şekilde çalışıyor. Kaynak tüketimi de oldukça düşük durumda, işlemci %10'larda, SSD kullanımı 10 MB civarında ortalama.

    Ancak birkaç gündür sistemde mevcut tabloya yeni sütun eklemeye çalışınca sistem bi kasılıyor mevcut performansı etkilemeyecek şekilde ama sütun eklenmiyor. Yine aynı şekilde bir sütunu silmeye kalkınca yine bi kasıyor kendisini ama netice yok. Yani sistem çalışmasına devam ediyor ancak bu işlemleri yapmıyor.

    Nedir ne değildir, bilgisi fikri olan var mıdır ?

     


    imza.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Claw
    Claw's avatar
    Kayıt Tarihi: 30/Temmuz/2015
    Erkek

    Bu kadar yüksek veri sahibi olan vt ler üzerinde hiç çalışmadım ancak bunun mantığı günlük o 1k sorgunun anlamı şudur ki sen her dakika sorgu falan alıyosun yani eğer bu işlemler, sorgular devam ederken sütun ekleyip silmeye çalışırsan kasması normal diye düşünüyorum. Sütun ekleme veya silme yaparken feys gibi maintence kullansan ya :)


    Real Eyes Realize Real Lies
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Büyük verilerde çalışan ustalar biraz yol gosterse iyi olur. Mesela maintance kullanımı gibi.

     

    cidden lazım performans odaklı şeyler.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek
    Claw bunu yazdı

    Bu kadar yüksek veri sahibi olan vt ler üzerinde hiç çalışmadım ancak bunun mantığı günlük o 1k sorgunun anlamı şudur ki sen her dakika sorgu falan alıyosun yani eğer bu işlemler, sorgular devam ederken sütun ekleyip silmeye çalışırsan kasması normal diye düşünüyorum. Sütun ekleme veya silme yaparken feys gibi maintence kullansan ya :)

    Hocam günlük değil anlık öyle sorgu :) sistem gerçekten güzel hiç sorun çıkarmıyor. Ancak bende yeni yeni büyük vt üzerinde uğraşmaya başladım, sorguları kesiyorum bu işlemleri yaparken kapatıyorum sistemi zaten ama yine bir halt olmuyor :)

    Hayır siliyorum silinmiyor, oluşturuyorum oluşturmuyor. Ama SQL komutunu verdikten sonra sistemin işlem yaptığını görüyorum yani kaynak kullanımı artıyor MYSQL'in.


    imza.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S2kucuk
    S2kucuk's avatar
    Banlanmış Üye
    Kayıt Tarihi: 06/Haziran/2015
    Erkek

    Sütun eklemeye phpmyadminden yapmaya çalışıyorsan timeouta düşmesi çok normal. Sütun ekleme işlemini mysql consoledan yaparsan sorun çıkmamalı. Biraz kıvranır veritabanı, I/O oranın tavan yapar ama çok sürmemeli. Eğer çok sürüyorsa yapabiliyorsan veritabanına tüm erişimi kesip tek tek tüm tabloları optimize etmen. Ardından tekrar denemen sonuç getirecektir.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    snnyk
    snnyk's avatar
    Kayıt Tarihi: 28/Mayıs/2007
    Erkek

    milyonluk derken tek bir tabloda 20 milyon kayıt mı mevcut ?


    snnyk.com - code is poetry all that i know...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek
    S2buyuk bunu yazdı

    Sütun eklemeye phpmyadminden yapmaya çalışıyorsan timeouta düşmesi çok normal. Sütun ekleme işlemini mysql consoledan yaparsan sorun çıkmamalı. Biraz kıvranır veritabanı, I/O oranın tavan yapar ama çok sürmemeli. Eğer çok sürüyorsa yapabiliyorsan veritabanına tüm erişimi kesip tek tek tüm tabloları optimize etmen. Ardından tekrar denemen sonuç getirecektir.

    Tmp kullanımı %100 oluyor, o yüzden onu optimize edip , akabinde direkt mysql konsoldan deneyeceğim birazdan,

    @snnyk hocam bir tabloda 15 diğer tabloda 5 milyon civarı var, diğer vt'lerde de benzer durum var.


    imza.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    snnyk
    snnyk's avatar
    Kayıt Tarihi: 28/Mayıs/2007
    Erkek

    hocam

    öncelikle mysql workbench ile denemeni tavsiye ederim

    mümkünse test serverde dene önce yok ise sistemin en az kullanıldığı saatlerde bi maintenance çakıp dene 

    oda olmassa artık tek çare bulk load yani record to record

    onuda mysql commit , unique vs. kapatıp row row yeni bir tabloya insert etmen lazım  


    snnyk.com - code is poetry all that i know...
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S2kucuk
    S2kucuk's avatar
    Banlanmış Üye
    Kayıt Tarihi: 06/Haziran/2015
    Erkek
    snnyk bunu yazdı

    hocam

    öncelikle mysql workbench ile denemeni tavsiye ederim

    mümkünse test serverde dene önce yok ise sistemin en az kullanıldığı saatlerde bi maintenance çakıp dene 

    oda olmassa artık tek çare bulk load yani record to record

    onuda mysql commit , unique vs. kapatıp row row yeni bir tabloya insert etmen lazım  

    +1 katılıyorum. İkinci önereceğim yöntem de bu olacaktı. Autocommit i kapatıp birsürü insert sorgusu haline çevireceksin. İşlem bittikten sonra commit deyip yola devam ediceksin. Sunucu bakım moduna girmeden yapma bunu iyice zortlatırsın.

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Hocam büyük tablolarda yeni bir kolon ekleme, index ekleme gibi işlemlerde yeni tablo oluşturup veriyi ona taşımak genelde önerilen bir yöntemdir (özellikde MongoDB'de). Autocommit konusunda eğer bu işi başka bir dille yapacaksan C#, Java'da Transaction ile gönderirken belirli aralıklarla commit gerçekleştirirsen sunucunun RAM'i şişmez ve MySQL patlamaz aklında bulunsun.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    Çok sağolun yardım ve fikirleriniz için.

    Bahsettiğiniz gibi yeni tabloya taşımak çok daha mantıklı bir çözüm oldu.

    Tekrardan teşekkürler herkese :)


    imza.
Toplam Hit: 1050 Toplam Mesaj: 11
mysql