dedlfix: mysql: Zeitfresser

Beitrag lesen

Tach!

update mytable_uid set Status= 1 WHERE uid='".$ID."'

Benötigt bei ca. 400 Einträgen in der Tabelle zwischen 2 und 3 Sekunden.

Ja, so einen langsamen Datenbankserver hatte ich früher auch mal.

Aber Scherz beiseite, bei 400 Einträgen sollte das selbst ohne Index nicht so lange dauern.

Nach dem Setzen eines Indexes auf die Spalte uid benötigt die Query nur noch 0,1 Sekunden.

Warum hat sie vor der Indizierung aber so lange benötigt? Hängt das mit dem Inhalt zusammen? Benötigt eine varchar-Spalte wirklich so viel länger?

Generell kann man sagen, dass ohne Index ein Full Table Scan durchgeführt werden muss, um die zur Bedingung passenden Daten zu finden. Also jeder Datensatz muss angeschaut werden. Mit passendem Index kann die Suche nach den Kandidaten abgekürzt werden. Der Index liegt sortiert vor, und um in einer sortierte Menge etwas zu finden, gibt es recht schnelle Algorithmen.

Warum das allerdings bei dir so lange dauert, weiß ich nicht. Ergibt EXPLAIN irgendwas auffälliges?

dedlfix.

0 40

mysql: Zeitfresser

Pit
  • sql
  1. 0
    dedlfix
    1. 0
      Pit
      1. 0
        dedlfix
        1. 1
          Pit
        2. 0

          +1 bitte

          ursus contionabundo
          1. 0
            Matthias Apsel
            1. 0
              TS
              • menschelei
              • projekt
              • zu diesem forum
              1. 0
                Matthias Apsel
      2. 0
        Rolf B
        1. 0
          Pit
  2. 0
    ursus contionabundo
    1. 0
      Pit
      1. 1
        ursus contionabundo
        1. 0
          Pit
          1. 0
            TS
            • mysql
        2. 0
          Rolf B
          1. 0
            ursus contionabundo
            1. 0
              Rolf B
              1. 0

                Harangue

                ursus contionabundo
                • humor
      2. 0
        ursus contionabundo
        • php
        • sql
        • webserver
      3. 0

        Unique Identifier Symbolvorrat.

        TS
        • php
        • sql
        1. 0
          dedlfix
          1. 0
            ursus contionabundo
          2. 0
            Pit
            1. 0

              Zu php: uniqid() vers. mysql uuid()

              ursus contionabundo
              1. 0

                Für die Geschichtsschreibung:

                ursus contionabundo
                • geschichte
                • sonstiges
              2. 0

                Korrektur: "Kleiner" Denkfehler

                ursus contionabundo
              3. 1
                dedlfix
                1. 0
                  ursus contionabundo
              4. 0
                Auge
          3. 0
            TS
            • cloud
            • php
            • sql
            1. 0
              dedlfix
              1. 0
                TS
                • cloud
                • offtopic
                1. 0
                  dedlfix
                  1. 0
                    TS
                    1. 0
                      dedlfix
    2. 0

      Welcher Ordinaltyp für einen Index?

      TS
      • mysql
      1. 0

        Theorie vers. Praxis

        ursus contionabundo
        1. 0
          ursus contionabundo