phpbar.de logo

Mailinglisten-Archive

RE: [php] [Gesucht] performante filedb für viele daten

RE: [php] [Gesucht] performante filedb für viele daten

Beck, Mike Mike.Beck at ibmiller.de
Sam Mai 8 18:00:31 CEST 2004


> 
> das feld um was es geht heisst "content" - und wie ich sehe
> hab ich keinen index drauf, hm??!
> ja toll.. da schreib ich mir hier nen wolf.. super.. ;-)

Wenn ich mir dein ff. Query so anschaue, dann geht's um feed - da sollte ein index drauf sein.

> 
> naja, dann setz ich ma nen fulltext index auf feld `content`
> - btw, ist es denn nicht sinnvoll, einfach ein where= zu
> machen? uh, da kommt mein manko raus..
> ein schwaches query was ich z.b. hab:
> 
> SELECT items.*, feeds.*, items.title as ititle, items.url as

Also items.* sollte man schonmal vermeiden...irgendwann ergänzt Du die Tabelle um ein paar Spalten und verlierst den Überblick, was an unnötigem Schrott vom MySQL-Server ausgegeben wird, ohne dass Du es brauchst... 

> ilink, feeds.title as ftitle 

Und schon liest Du die gleichen Spalten doppelt unter verschiedenem Namen aus, tss,tss

> FROM feeds, items WHERE

LEFT JOIN ist, wenn Du ihn richtigrum einsetzt deutlich schneller als wenn sich MySQL selbst überlegen soll, wie rum es verknüpft. 


> items.feed=feeds.autoid 

> AND (`feed`=139 OR `feed`=133 OR
> `feed`=157 OR `feed`=132 OR `feed`=289 OR `feed`=166) 

Geht übrigens auch so:
WHERE feed in (139,133,157,132,289,166)
Liest sich doch leichter ;-)

> order
> by `date` desc

Nagut, noch einen Index auf date - kann man ja vielleicht öfter brauchen. Btw: wenn Du dann mal alle in eim best. Monat suchst:
Bei WHERE DATE LIKE '2003-05-%'
Kann kein Index verwendet werden, bei
WHERE DATE BETWEEN '2003-05-01' AND '2003-05-31'
Schon ;-)


> tja - und kaum geht es um sql-queries soll ich liste
> wechseln?! - *schnief* ;-)

Na wollen mal nicht so sein - Samstags ist es ja sonst ziemlich ruhig hier ;-)

Also ich denke, da lässt sich schon noch ein bischen was beschleunigen bei dem Query. Hattu phpMyAdmin? Dann verknüpf doch da drin, mal deine Tabellen, so dass er sie Dir im PDF richtig verknüft darstellen kann, und dann klicker dein Select mit dem Abfrageeditor zusammen. Da habe ich mal ein paar Zeilen geschrieben, mit denen er sich überlegt, wie man da ein sinnvolles LEFT JOIN hinkriegt.. Schau doch mal was da so rauskommt.

Was deine andere Mail betrifft - also seit wann Fulltext geht müsste ich auch erst nachschauen, und wenn Du sagst, da steht, das geht nicht mit merged-tables, dann glaub ich das doch einfach - weiss ja auch net alles auswändig ;-)

Also bei obigem Beispiel von Dir brauchste ja auch kein Fulltext, aber ich nehme an, früher oder später wirste es brauchen. Ich würde mir halt mal überlegen, ob ich es nicht vermeiden kann, mit der Merged-table zu arbeiten. Wieso brauchst Du die denn so dringend? Kannste das nicht alles in eine packen?


-- 
Mike Beck
mike.beck at ibmiller.de

php::bar PHP Wiki   -   Listenarchive