Abfragen 2 grosser Tabellen
am 01.09.2005 15:00:33 von Stefan Klaeser
Hallo,
ich habe ein Problem mit einer Abfrage einer grossen Tabelle.
Also ich habe ein tabelle in der zugehoerigkeiten stehen.
Die Tabelle hat ungefähr 350.000 Einträge (es werden aber mehr werden)
Aufbau:
cid ->int(10)
bid ->int(10)
Aus dieses Tabelle hole ich mir bspw. alle 'cid' die zu einer
bestimmten 'bid' gehören und speichere diese in ein Array.
(Das können über weit über 1000 werden)
Nun brauche ich aber Daten aus einer 2. Tabelle.
Die Tabelle hat ungefähr 300.000 Einträge (ca. 35MB) (es werden aber mehr
werden)
Aufbau:
cid ->int(10)
ort ->varchar(255)
status ->int(1)
und einige weitere
Ich brauche nun ein Array das mir Anhand des ersten Arrays
Daten (cid, ort, status) aus der 2. Tabelle holt.
Wenn das 1. Array nur 300-400 Einträge hat, ist das kein Problem.
Aber bei über 1000 Streikt der Server.
Egal ob ich jede Frage einzeln Abfrag oder eine grosse Abfrage mache.
Wie bekomme ich das am besten hin?
Verknüpfungen? Joins?
Aber wie genau?
Links zu Manuals oder HowTos sind willkommen, aber wenns geht auf Deutsch.
Danke für jede Hilfe.
--
Gruss
Stefan
--Si ehta uswi elate ini stesa bern icht.--
Re: Abfragen 2 grosser Tabellen
am 01.09.2005 16:00:57 von Niels Braczek
Stefan Klaeser schrieb:
> Wenn das 1. Array nur 300-400 Einträge hat, ist das kein Problem.
> Aber bei über 1000 Streikt der Server.
> Egal ob ich jede Frage einzeln Abfrag oder eine grosse Abfrage mache.
>
> Wie bekomme ich das am besten hin?
> Verknüpfungen? Joins?
> Aber wie genau?
Selektiere die Daten mit einem JOIN und verarbeite die datensätze
einzeln *ohne* sie vorher in ein Array zu lesen. Dann spielt die Menge
der Datensätze in Bezug auf den Speicherplatz keine Rolle mehr.
> Links zu Manuals oder HowTos sind willkommen, aber wenns geht auf Deutsch.
Am besten ist natürlich das Original-Manual, speziell zu JOINs:
http://dev.mysql.com/doc/mysql/en/join.html
Die deutsche Fassung erhältst du, wenn du /en/ gegen /de/ austauschst.
Allerdings ist generell nur die englische Fassung vollständig und aktuell.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´
Re: Abfragen 2 grosser Tabellen
am 01.09.2005 16:45:52 von Stefan Klaeser
> Selektiere die Daten mit einem JOIN und verarbeite die datensätze
> einzeln *ohne* sie vorher in ein Array zu lesen. Dann spielt die Menge
> der Datensätze in Bezug auf den Speicherplatz keine Rolle mehr.
>
> > Links zu Manuals oder HowTos sind willkommen, aber wenns geht auf
Deutsch.
>
> Am besten ist natürlich das Original-Manual, speziell zu JOINs:
> http://dev.mysql.com/doc/mysql/en/join.html
> Die deutsche Fassung erhältst du, wenn du /en/ gegen /de/ austauschst.
> Allerdings ist generell nur die englische Fassung vollständig und aktuell.
Hi,
besten dank, habs mit JOIN gelöst.
Das Problem war anscheinend auch nicht die Abfrage sondern der interne
Speicher,
den hab ich mit den Arrays wohl ein bischen vollgehauen :)
Danke.
lg
Stefan