Mysql İndexler ?
-
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_ciElimde 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
-
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