Eddie: Zusätzlicher Index für PrimaryKey?

Hallo allerseits,

ich dachte immer, der PrimaryKey wäre bereits automatisch auch ein Index. Aber mein ERM-Programm meckert rum, solange ich keinen extra Index für den PrimaryKey erstelle. Macht das Sinn???

Der Grund für meinen Zweifel: ohne Definition eines Index auf dem PrimaryKey (also "falsch") findet meine DB den Eintrag Nr. 4609350 trotzdem ruckzuck (0.0004 Sekunden) - in einer 600MB großen Tabelle mit 5.000.000 Zeilen.

Warum aber meckert dann mein Programm rum?

Danke für eure Hilfe,
Eddie

P.S.: hier das CREATE-Statement:
create table test
(
   id  mediumint   not null,
   primary key (id)
)
type = InnoDB;

--
Old men and far travelers may lie with authority.
  1. Hi,

    ich dachte immer, der PrimaryKey wäre bereits automatisch auch ein Index. Aber mein ERM-Programm meckert rum, solange ich keinen extra Index für den PrimaryKey erstelle. Macht das Sinn???

    nein.

    Warum aber meckert dann mein Programm rum?

    Wie meckert das Programm genau? Hast Du versucht das Problem zu isolieren?

    Sgt. Redrum

  2. Hi,

    P.S.: hier das CREATE-Statement:
    create table test
    (
       id  mediumint   not null,
       primary key (id)
    )
    type = InnoDB;

    ich weiss ja nicht genau was läuft, aber versuchs mal mit einer "bigint". ;)

    Wie heisst das "ERM-Programm"?

    Sgt. Redrum

    1. Hi,

      ich weiss ja nicht genau was läuft, aber versuchs mal mit einer "bigint". ;)

      ähm, na ja, dann hat er halt mehr Schlüssel zur Verfügung, sonst ändert das nichts.

      Wie heisst das "ERM-Programm"?

      ERM ist ein Entity-Relationship-Modell. Ich nehme an, er verwendet dieses Tool um die Datenbank zu modellieren und dann automatisch zu generieren.

      MfG
      Rouven

      --
      -------------------
      Eine Bilanz ist wie der Bikini einer Frau. Sie zeigt fast alles, aber verdeckt das Wesentliche  --  Günter Stotz, Regierungsdirektor des baden-württembergischen Wirtschaftsministeriums
    2. Hallo Sgt. Redrum (oder soll ich dich gleich Danny Torrance nennen?),

      Wie meckert das Programm genau?

      Es sagt: "Check existence of index!!!"
      Und weiter: "A table should contain at least one column, one index, one key, and one reference."

      Hast Du versucht das Problem zu isolieren?

      Ja, sobald ich einen Index auf den PrimaryKey einrichte, ist es ok.

      ich weiss ja nicht genau was läuft, aber versuchs mal mit einer "bigint". ;)

      Hat keinen Unterschied gemacht (mit int).

      Wie heisst das "ERM-Programm"?

      Sybase PowerDesigner, v.11

      Eddie

      --
      Old men and far travelers may lie with authority.
      1. Hi,

        Wie heisst das "ERM-Programm"?
        Sybase PowerDesigner, v.11

        wenn Du nicht einmal eine Tabelle mit Primärschlüssel problemlos erstellen kannst, dann empfehle ich die Trennung von dem guten Stück.

        Hast Du versucht das Problem zu isolieren?
        Ja, sobald ich einen Index auf den PrimaryKey einrichte, ist es ok.

        Also, das mit dem Index einrichten auf einem PK habe ich noch nicht gehört. _Eventuell_ gaukelt Dir Deine Oberfläche (Dein "ERM-Programm") irgendwas vor.

        Sgt. Redrum

      2. Hi,

        ich nochmal hier. ;)

        Es sagt: "Check existence of index!!!"
        Und weiter: "A table should contain at least one column, one index, one key, and one reference."

        Uns interessiert schon der _genaue_ Wortlaut der Meldung.
        "!!!" gibt es nicht.
        http://www.google.de/search?hl=de&q=A+table+should+contain+at+least+one+column%2C+one+index%2C+one+key%2C+and+one+reference&btnG=Google-Suche&meta= dito

        Und dieses "should" irritiert mich, der Rest allerdings auch ein wenig.

        Sgt. Redrum

        1. Hallo,

          Es sagt: "Check existence of index!!!"
          Und weiter: "A table should contain at least one column, one index, one key, and one reference."

          Uns interessiert schon der _genaue_ Wortlaut der Meldung.
          "!!!" gibt es nicht.

          Ok, erwischt:

          Category   Check                 Object         Location
          --------------------------------------------------------
          Table      Existence of index    Table 'test'   <Model>

          In der Hilfe dazu heisst es:
          "A table should contain at least one column, one index, one key, and one reference."

          Eddie

          --
          Old men and far travelers may lie with authority.