Rhöner: MySql -> Datensatzanzahl

Halöle.

Mich würde mal interessieren, wieviele Datensätze eine Tabelle in einer MySql-Datenbank fasst.
Ich habe in dieser Tabelle nur zwei Spalten (wegen der m:n Beziehung) und da wäre es nicht schlecht zu wissen, wieviele Datensätze da jetzt rein passen. Das eine Tabelle auf 4 GB begrenzt ist, hab ich nun schon herausgefunden. Aber mit meinen zwei Index-Werten wird das wohl ziemlich lange dauern.

Ich hoffe, das weiß jemand.

CIAO Rhöner

  1. Hello,

    Mich würde mal interessieren, wieviele Datensätze eine Tabelle in einer MySql-Datenbank fasst.
    Ich habe in dieser Tabelle nur zwei Spalten (wegen der m:n Beziehung) und da wäre es nicht schlecht zu wissen, wieviele Datensätze da jetzt rein passen. Das eine Tabelle auf 4 GB begrenzt ist, hab ich nun schon herausgefunden. Aber mit meinen zwei Index-Werten wird das wohl ziemlich lange dauern.

    Wie groß ist denn bigint unsigned? Ich denke 8Bytes.

    Nur kannst Du auf den meisten Syetemen die API-Funktionen nur bis 2^31 benutzen. Also kannst Du 2.18 Milliarden Datensätze eintragen.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Da muss ich jetzt aber genauer nachfragen:

      1. Was hat der Typ der beiden Spalten mit der Gesamtdatensatz-Anzahl zu tun?
      2. Wieso genau 2^31?
      3. Wie kommst du auf 2,18 Mrd???

      Fragen über Fragen :-)

      1. Hello,

        Da muss ich jetzt aber genauer nachfragen:

        1. Was hat der Typ der beiden Spalten mit der Gesamtdatensatz-Anzahl zu tun?

        i.d.R. benutzt man Primärschlüssel
        Primärschlüssel müssen indiziert sein
        Wenn man nun zur Ermittlung eines neuen Schlüssels jedesmal ert den Index bemühen mus, wird das System langsam
        Also nutzt man für Primärschlüssel gerne auch autoincrement-Schlüssel Da weiß das System sehr schnell, welcher der Nachfolger ist und kann das Reindex des Primary Keys nach eigenem Gutdünken optimiert durchführen.
        Auto-Increment Keys kenne ich aber nur als Zahlenwerte, positiv.
        Der größte für einen Key benutzbare Zahlenwert ist baer derjenige, denn man mit seinem schwächsten Systemteil noch bearbeiten kann.

        1. Wieso genau 2^31?

        PHP hat z.B. für einen Integer auf vielen Systemen (OS-abhängig) 32 Bit zur Verfügung. Da es da aber nur signed Integers gibt bleiben also 31 Bits für die DSarstellugn des Keys. 2 hoch 31 gibt 2.147.483.648

        1. Wie kommst du auf 2,18 Mrd???

        Ups, da habe ich mich wohl um ein paar Millionen geirrt. Aber das machen uns die Eichels und Stoibers und Kohls und wie die alle heiße doch jeden Tag vor.

        Fragen über Fragen :-)

        ... zur Zufriedenheit beantwortet?

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo

          i.d.R. benutzt man Primärschlüssel

          Das kann ich ja nicht machen, sonst käme es mit meiner m:n - Beziehung ja nicht hin. Da muss ich ja vollen Zugriff auf beide Werte haben.

          PHP hat z.B. für einen Integer auf vielen Systemen (OS-abhängig) 32 Bit zur Verfügung. Da es da aber nur signed Integers gibt bleiben also 31 Bits für die DSarstellugn des Keys.

          Wieso jetzt 31 (ich weiß, ich habs schonmal gefragt :-( Aber sind signed Werte nicht Hälfte Minus - Hälfte Plus???

          ... zur Zufriedenheit beantwortet?

          Gleich. Ich versprechs ;-)

          mfg Rhöner

          1. Hello,

            i.d.R. benutzt man Primärschlüssel

            Das kann ich ja nicht machen, sonst käme es mit meiner m:n - Beziehung ja nicht hin. Da muss ich ja vollen Zugriff auf beide Werte haben.

            Wieso, haben die beiden Tabellen von m:n keine Primärschlüssel?
            Die müssen dann doch in der Beziehungstabelle als Sekundärschlüssel auftauchen.

            Damit hast Du in der Beziehungstabelle einen Kombinationsschlüssel. Dann könntest Du natürlich auch die volle Breite von 8Bytes nutzen. Alledings glaube ich trotzdem nicht, dass MySQL nun mehr Datensätze zulässt, als mit vier Bytes abzüglich ienem Bit adressierbar wären. Es muss ja intern die Blöcke auch adressieren und da wird das Betriebssystem genaus dicht machen.

            PHP hat z.B. für einen Integer auf vielen Systemen (OS-abhängig) 32 Bit zur Verfügung. Da es da aber nur signed Integers gibt bleiben also 31 Bits für die Darstellugn des Keys.

            Wieso jetzt 31 (ich weiß, ich habs schonmal gefragt :-( Aber sind signed Werte nicht Hälfte Minus - Hälfte Plus???

            *ohne Worte*

            Was bedeutet denn ein shr, also alle bits eins nach rechts rücken, wenn rechts das niederwertigste steht?

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau