phpbar.de logo

Mailinglisten-Archive

Re: Performance Frage und Indices
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performance Frage und Indices



Norbert Hartl wrote:
> ich bin gerade etwas ratlos bezueglich meiner Datenbank.
Kenn' ich :-)


> Die Datenbank laeuft auf einem Dual-PII-233 und einem
> RAID, das intern mit UW und extern mit Differential
RAID? Bedenke, daß RAID5 nicht optimal ist für Datenbanken ;-) (Wir
haben selber Engpässe auf Dual-PII233ern mit RAID5).

> Und ich benutze im Moment MySQL 3.22.20a (noch dynamisch
> gelinkt und mit egcs-1.0.3 kompiliert)
Wenn es um Performance geht, würde ich die binary distributions
empfehlen.

> Ich habe hier eine Tabelle, die aus 18 Spalten und einer
18 Spalten klingt nach sehr viel für eine gut normalisierte Struktur.

> Es gibt hauptsaechlich 5 Spalten, die in der WHERE-Clause
> auftauchen koennen. Diese sind kombinierbar, aber es
> werden 3 davon immer benutzt und eben maximial 5. Ab-
Ich habe nicht viel Ahnung von Datenbankdesign, aber "drei Spalten, die
immer benutzt werden" hört sich nach einem Primärschlüssel an. Spricht
hier etwas gegen die Normalisierungsregeln (mit denen ich mich selber
nicht so gut auskenne :-)) ?

> gefragt werden bei dem betreffenden SELECT 2 Spalten.
Das spielt IMHO keine Rolle?

> INDEX (col1,col2,col3,col4)
> INDEX (col1,col2,col3,col5,col4)
Gibt es einen PRIMARY KEY über (col1,col2,col3)? Gibt es überhaupt einen
PRIMARY KEY?

> Darueberhinaus habe ich per explain gesehen, dass oftmals
> fuer den Fall c.) der erste und nicht der zweite INDEX
> benutzt wird und das verstehe ich gar nicht.
Das hängt sehr vom Query ab, ich denke mal, der Optimizer holt schon das
beste für Dich raus :-)

> 2.) Ich moechte die id als Primary Key von int auf medium-
> int umstellen. Was passiert, wenn die ID 'ueberlaeuft'?
> Soweit ich das sehe, hat MySQL keine Moegleichkeit untere
> leere Bloecke wieder zu verwenden. Da ich jeden Tag ca.
> 200.000 Datensaetze loesche und einfuege, die nach einem
> Datumskriterium geloescht werden, bekomme ich einen quasi
> zusammenhaengen Block von ids, der nach oben wandert.
Schlimmstenfalls (wenn es möglich ist), die Datenbank sperren. Dann ein
Update auf alle IDs, die als Schlüssel zusammenhängen, so in etwa SET
ID=ID-100000 oder so.

Matthias
-- 
   w e b f a c t o r y | matthias pigulla
      www.webfactory.de  mp_(at)_webfactory.de


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive