phpbar.de logo

Mailinglisten-Archive

Performance-Problem

Performance-Problem

Marc Albrecht mysql-de_(at)_lists.bttr.org
Sun, 10 Feb 2002 12:25:24 +0100


Moin,

> So eine pauschale Aussage halte ich mal für falsch, und zwar auf folgenden
> Gründen:
> 1. Könnten alle deine Felder in einem Index liegen, idealerweise dem, der zur
> where-Bedinung herangezogen wird. Dann reicht es IMHO, den Index zu lesen, und
> nicht auch noch die Tabelle
> 2. Könntest du ein BLOB Feld in der DB haben mit einigen hundert KB Daten pro
> Zeile. Es geht auf jeden Fall schneller, nur die 5 oder 6 Spalten zu lesen,
> ohne das BLOB.
> 3. Musst du im Falle von SELECT * (wesentlich) mehr Speicher lokal kopieren,
> bzw. die Daten auch über das Netzwerk verschicken.
> 
> Alles Gründe, die deine Aussage ein wenig zweifelhaft erscheinen lassen.



Das hat mit meiner ursprünglichen Frage nur noch wenig zu tun:

Nochmal - die ersten paar tausend Datensätze werden schnell gelesen. 
Dann bricht die Geschwindigkeit immer mehr zusammen. Das deutet für mich 
auf ein grundlegendes Problem im Zusammenhang mit Lesen von den 
Festplatten hin - nicht auf ein Probem des Selects.

Wir BRAUCHEN im Select _alle_ Daten aus der Tabelle, nicht nur einen 
Index - der interessiert uns überhaupt nicht. Wir müssten mithin einen 
zweiten, dritten bis x-ten Select auf die Daten absetzen, wenn wir in 
jedem Zugriff nur einzelne Elemente lesen wollten. Das halte ich vom 
Ansatz her für wenig sinnvoll.

Und nochmal dieses: wir LIMITIEREN den Zugriff. Wir holen nur die Zeilen 
aus der Tabelle, die wir (KOMPLETT) haben wollen. Auch das stand in 
meiner Ursprungsmail (select * from tabelle limit .....)

Meine Frage bezieht sich - das versuche ich gerne noch einmal darzulegen 
- darauf, wie wir bei einer 360MB-großen MYD-Datei auch die Datensätze, 
die in der Tabelle (primary key!) weiter "hinten" liegen, in adäquater 
Geschwindigkeit erhalten können. Eine Lösung - auch DAS schrieb ich 
schon! - wäre ja, die Tabelle zu splitten. Dann könnten wir aber gleich 
alle Daten in Files packen und auf eine Datenbank verzichten. Die 
GLEICHE Datenbank unter Oracle läuft zwar generell deutlich langsamer, 
bleibt aber auch bei Zugriffen auf die "hinteren" Zeilen nahezu gleich 
performant. Es dünkt mich mithin, ein typisches mySQL-Problem zu sein.

Für HILFE wäre ich sehr dankbar. Ich geben gerne jede Art von 
Information heraus, die hierbei helfen kann. Ideologische Diskussionen 
bringen mich aber (leider) nicht weiter.

Marc Albrecht



---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive