perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 23
Click for quality!




11.02.2012 / 08:10

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Rund um das Thema Datenbank zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragMysql Select Abfrage - OR oder LIKE ?
Seitenanfang
Hallo,

folgende Situation.

Ich habe Artikel die einer Kategorie zugeordnet sind.

Die Kategorien stehen im folgendem Format in der Artikeltabelle:

Hauptkategorie:Unterkategorie

Jetzt möchte ich z.b. alle Artikel aus der Hauptkategorie anzeigen lassen. Aktuell habe ich das so gelöst das ich alle Unterkategorien per "OR category="Hauptkategorie:Unterkategorie" in die select Abfrage einfüge. Funktioniert auch ganz gut.

Meine Frage ist nun welche Abfrage aus Performance Gründen die richtige wäre. Doch lieber mit LIKE category="Hauptkategorie"

Datum: 10.03.2007-09:42

Beitragre: Mysql Select Abfrage - OR oder LIKE ?
Seitenanfang
Hallo Carsten

Da du weißt, wie das Format der Kategorie in der Tabelle aussieht, dürfte folgendes der kürzere Weg sein:

SELECT * FROM artikeltabelle
WHERE kategorie
LIKE 'Hauptkategorie%'

Damit bekommst du alle Artikel aufgelistet, deren Kategorie Eintrag mit 'Hauptkategorie' anfängt(!). Nach dem Wort 'Hauptkategorie' kann kommen was will.

Grüße
Mario

Datum: 10.03.2007-12:57

Beitragre: Mysql Select Abfrage - OR oder LIKE ?
Seitenanfang
Hallo Mario,

das weis ich ja. Ich wollte eigentlich wissen welche Möglichkeit denn nun die beste wäre für den Mysql Server und die Performance.

Programmiertechnisch ist beides möglich.

Gruß
Carsten

Datum: 10.03.2007-14:12

Beitragre: Mysql Select Abfrage - OR oder LIKE ?
Seitenanfang
Hallo Carsten

Sorry, da hatte ich dich falsch verstanden ... :)

Ob jetzt die oder die Abfrage schneller bzw. Ressourcen schonender ist, kann wahrscheinlich nur einer von den MySQL Entwicklern beantworten.

Oder aber machst halt nen Test: Generier dir eine Tabelle mit (zum Beipiel) 10000 Datensätzen und probiere daran, welche Abfrage variante besser ist.

Was auf alle Fälle schneller geht (eigene Erfahrung) ist, das man nur die Spalten auswählt, die man wirklich benötigt.

Statt SELECT * FROM ....
eben SELECT spalte1,spalte2,... FROM ....

Sowas hilft auf alle Fälle Speicher zu sparen, was wiederum dazu führt das das System weniger mit Speicherverwaltung beschäftigt ist.

Grüße
Mario

Datum: 10.03.2007-16:55

-






-
-