phpbar.de logo

Mailinglisten-Archive

[php] Mysql suche mit LIKE

[php] Mysql suche mit LIKE

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mit Nov 7 14:25:58 CET 2007


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