Mysql İndexler ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DarkF4Te
    DarkF4Te's avatar
    Kayıt Tarihi: 02/Mart/2008
    Erkek

    Merhaba Arkadaşlar

       Id       int(9)             
      fname varchar(75)        utf8_general_ci               
      name  varchar(250)      utf8_general_ci                 
      street  varchar(40)        utf8_general_ci                
      nr       varchar(34)         utf8_general_ci                
      zip      varchar(13)         utf8_general_ci                 
      city      varchar(45)        utf8_general_ci                 
      tel       varchar(22)        utf8_general_ci        

    Elimde 20 milyon kayıt içeren isim,soyisim,adres,postak,şehir,tel alanlarından oluşan bir tablo var
    eşleştirmeler ile veri kontrolu yapıyorum bunun içinde tam eşleşmeler içeren queryler gönderiryorum mysqle fakat 33.sn suruyor.Tablolarda hiç indexleme yoktu başta hatamın bu olduğunu anladım daha sonra indexledim fakat full text indexledim fakat istediğim şekilde sorgu gönderemiyorum sorgularda yeri geliyor hem isim hemde soyismin uyuşması gerekiyor cunku full textde match against bu konuda ters oluyor.

    select * from tablo wehre isim = 'Uğur and soyisim = 'erkan' tel = '055472918xx'; tarzında bir query yine 33sn.yede sonuclanıyor full text indexlemenin hiçbir faydası olmuyor.

    indexin türünü Full text değilde index yapmaya calıstıgımdada

    #1071 - Specified key was too long; max key length is 1000 bytes 

    diyor db utf8 1 char 8 byte name 250*8 2000 :|

    indexleme yada sorguları nasıl hızlandırabılecegım konusunda tavsiyesi olan var mı acaba arkadaşlar

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tagext
    tagext's avatar
    Üstün Hizmet Madalyası Başarı Madalyası
    Kayıt Tarihi: 25/Temmuz/2002
    Erkek

    utf de 1 karakter 2 bayttır 8 değil. = yerine like kullan . isim tablondaki maksimum uzunluktaki kaydı bul sonra kolonu 250 den o sayıya indir. bir de oyle dene 

     


    ftw
Toplam Hit: 2556 Toplam Mesaj: 2