Mailinglisten-Archive |
Hallo Michael, Am Mittwoch, 7. November 2007 schrieb Michael Dunkel: > Hallo, > > ich hoffe mir kann einer von euch helfen. > Mein MySql kann kein Like mehr ;-) > > ich habe ne recht große Tabelle mit Keywords drin (ca. 22.500.000 > Einträge) SELECT * FROM Keyword WHERE keyword = 'ebay' > SELECT * FROM Keyword WHERE keyword LIKE 'ebay' > > diese Querys geben das selbe zurück ich habe aber auch ein 'Ebay' > drin stehen, welches ich nur bekomme wenn ich eben exakt nach 'Ebay' > suche, als die Tabelle noch kleine war ging das aber tadellos, das > ist momentan ne InnoDB, hatte das gleiche aber auch schon mit MyISAM, > hab mich aber da damit abgefunden das es nicht geht. > > Speicherplatzverbrauch Typ Verbrauch > Daten 1.571 MiB > Index 1.246 MiB > Insgesamt 2.817 MiB > > > die Kiste hat 2 GB Speicher wovon mysql knapp 1 GB bekommt (mehr will > ich nicht geben weil noch anderes zeug drauf läuft) > meine Theorie sagt das der Index nicht in Speicher passt und er > dadurch eine casesensitive suche macht, egal ob mit LIKE oder nicht. > > kennt jemand das problem bzw. hat jemand ne idee oder lösung für das > Problem? die Frage ist, wie die Spalten angelegt sind, die Du durchsuchst. Ist die Kollation "ci" - case-insensitive - oder "cs" - case-sensitive? Handelt es sich um Text- oder Binärfelder? Letztere sind case-sensitive. Siehe auch: http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html Viele Grüße, Lutz
php::bar PHP Wiki - Listenarchive