folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veri Tabanındaki Mükerrer Kayıtlar



Veri Tabanındaki Mükerrer Kayıtlar

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek

    MySQL mimarisinde storage engine ayri bir layer'dir. Dusuk seviyeli api ile storage engine ve SQL arasinda iletisim kurulur. Bu yuzden degisik "storage engine" ler vardir.

    Eger tablolarin MyISAM storage engine ise auto-commit modunda calisiyorlar. Bu engine'i transaction engine degildir. Onun yerine InnoDB kullan ki transactionlarini yakalasin.

    Birde hangi dille gonderiyorsun ? Arada baska layer veya API , Service fln olmasin. Kullandigin COnnectorda sikinti olmasin BUG fln.

     


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yawuz
    yawuz's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    @dhmm  MyISAM, yapıştırmayı unutmuşum. Python ile gönderiyorum, veri içeren tabloları InnoDB 'ye çevirsem sorun olur mu? Bir de tablo birden fazla yerden gelen veriyle güncelleme ve ekleme işlemi yapılıyor bağımsız çalışan iki ayrı script tarafından sanırım bu yüzden de InnoDB olması daha mı uygun oluyor?

    db = MySQLdb.connect("192.100.1.100","root","_","db1", charset="utf8", init_command="SET NAMES UTF8" ) 
    cursor = db.cursor()

    Conncetor kısmıda bu şekilde

     

    yawuz tarafından 05/Nis/18 16:51 tarihinde düzenlenmiştir

    tahribat.com a can feda
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    yawuz bunu yazdı

    @dhmm  MyISAM, yapıştırmayı unutmuşum. Python ile gönderiyorum, veri içeren tabloları InnoDB 'ye çevirsem sorun olur mu? Bir de tablo birden fazla yerden gelen veriyle güncelleme ve ekleme işlemi yapılıyor bağımsız çalışan iki ayrı script tarafından sanırım bu yüzden de InnoDB olması daha mı uygun oluyor?

    db = MySQLdb.connect("192.100.1.100","root","_","db1", charset="utf8", init_command="SET NAMES UTF8" ) 
    cursor = db.cursor()

    Conncetor kısmıda bu şekilde

     

    @yawuz hocam, oncelikle db'nin backup'ini al kesinlikle.

    Tablolarini MyISAM'dan InnnoDB'ye cevirebilirsin ama sistem tablolarini cevirmeye kalkma cunku bu desteklenmeyen bir islemdir. ALTER TABLE tabloadi ENGINE=InnoDB; komutu ile cevirirsin.

    Sadece InnoDB yetmiyor ama transactionlarida begin, commit, rollback fln yazman gerek. Ayrica autocommit'i False de yap gonderirken.

    Mesela :

    import MySQLdb
    
    db = MySQLdb.connect("192.100.1.100","root","_","db1", charset="utf8", init_command="SET NAMES UTF8" )
    db.autocommit(False)
    cursor = db.cursor()
    try:
     cursor.execute("INSERT INTO bilmemne .... (komut buraya)")
     db.commit()
    except:
     db.rollback()

     

    Ayrica bir oneri; Eger bu sekilde cosulmezse ve merkezi bir insert fonksiyonun varsa oraya bir log tutma olayi koy ve bak bakalim hangi script bunu yapiyor.

     


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
Toplam Hit: 2584 Toplam Mesaj: 14
mükerrer msql