Große Tabelle und Index Kardinalität Null

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Große Tabelle und Index Kardinalität Null

    Hallo alle zusammen,

    ich habe mySQL Tabelle (MyISAM, MySQL 5.0.38) mit rund 48 Millionen Zeilen.
    Über einige Spalten der Tabelle sind Indexe gesetzt. Jedoch wird mir zu jedem der Indexe "Cardinality: NULL" ausgegeben. Somit sind die Indexe wirkungslos und die Abfragegeschwindigkeit demzufolgte miserabel.

    Hat jemand eine Idee, wie man das beheben/umgehen/korrigieren kann?

    Hier die Struktur der Tabelle:
    PHP-Code:
    CREATE TABLE connection_data (
      
    id int(11unsigned NOT NULL auto_increment,
      
    icid bigint(30unsigned NOT NULL,
      `
    serialvarchar(20collate latin1_german1_ci NOT NULL,
      
    sbrs float(4,2) default '0.00',
      interface 
    varchar(255collate latin1_german1_ci NOT NULL,
      
    remote_ip varchar(15collate latin1_german1_ci NOT NULL,
      
    remote_host text collate latin1_german1_ci NOT NULL,
      
    sender_group varchar(25collate latin1_german1_ci NOT NULL,
      
    sender_action varchar(25collate latin1_german1_ci NOT NULL,
      
    sender_reason varchar(50collate latin1_german1_ci NOT NULL,
      `
    timestampint(11unsigned NOT NULL default '0',
      
    PRIMARY KEY  (id),
      
    UNIQUE KEY connection_id (icid,`serial`),
      
    KEY `timestamp` (`timestamp`),
      
    KEY interface (interface)
    ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci

  • #2
    Re: Große Tabelle und Index Kardinalität Null

    analyze table

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Hallo,

      die Richtung der Antwort war schon die richtige.
      Code:
      interface varchar(255) collate latin1_german1_ci NOT NULL,
      KEY interface (interface)
      Wenn man einen Index über ein 255-Zeichen großes Feld setzt, weigert sich mySQL ab einer bestimmten Anzahl von Zeilen, diesen aufzubauen. (Wahrscheinlich weil der Index enfach zu groß wird.)
      Verkleinert man die Feldlänge auf beispielsweise 70 Zeichen, wird er normal erstellt und verwaltet.

      Wieder was dazugelernt.

      Danke und Gruß,
      Poscht

      Kommentar


      • #4
        hm... klingt komisch.

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Welche MySQL-Version verwendest du?

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Original geschrieben von ghostgambler
            Welche MySQL-Version verwendest du?
            Derzeit 5.0.38

            Kommentar

            Lädt...
            X