1. myisam => innodb 2. klasse einbinden

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

  • 1. myisam => innodb 2. klasse einbinden

    zu meinem 1. anliegen:

    um die derzeitige performance meiner seite (die ohne gleichzeitige user online begrenzung täglich bei ca. 70 user total lahmt und bei ca. 80 user einen serverabsturz verursacht) vorrübergehend zu verbessern, bis die komplette überarbeitung abgeschlossen ist, habe ich mich informiert was ich momentan für möglichkeiten habe
    ich habe irgendwo gelesen dass innodb tabellen eine bessere performance bieten, was mein problem evtl über diese zeitspanne löst, bzw. wenigstens mehr gleichzeitige user zulässt

    nun frage ich mich, wie ich am besten die bestehenden tabellen mit allen datensätzen nach innodb konvertiere.

    auf mysql.com bin ich auf folgendes gestossen:
    http://dev.mysql.com/doc/mysql/de/SEC427.html

    "Die schnellste Art, eine Tabelle in InnoDB zu ändern, ist, die Einfügungen direkt in eine InnoDB-Tabelle vorzunehmen, das heißt, ALTER TABLE ... TYPE=INNODB zu benutzen [...]"

    ist es damit bereits getan? was sind die gefahren dabei, was kann mir auf dem laufenden system passieren? natürlich mache ich vorher ein backup, doch würde ich gerne so wenig wie möglich downtime durch die umwandlung (und falls das nicht klappt evtl. wieder einspielung des backups ca. 110 mb momentan) verlieren. wie gross ist die gefahr dass datensätze dabei beschädigt werden und was muss ich sonst beachten? kann ich die umwandlung direkt am laufenden system (im phpmyadmin) vornehmen, oder sollte ich evtl in der zeitspanne die seite vorübergehend deaktivieren?

    sonstige tips dazu? oder begründungen weshalb ich das nicht tun sollte?



    meine 2. frage ist mehr überflüssig:

    ist das einbinden einer klasse performancemässig komplett vernachlässigbar, so dass ich sie auf jeder seite einbinden kann, oder sollte man die auch nur wirklich einbinden wenn sie gebraucht wird?
    ich habe gerade mit einer klasse getestet, die im konstruktor gar nichts machen muss, die hat sich nach einigem aktualisieren bei ca. 0,0015 eingependelt (klasse pro aufruf 100 mal initialisiert)

    ich denke das ist vernachlässigbar, denn im gegensatz zu den anderen klassen die immer gebraucht werden (session, datenbank, template, ..) brauchen diese 100 mal initialisieren z.b. knapp weniger als 1 initialisieren der template klasse inkl. einlesen einer datei

    ich bin nun hin und her gerissen. einerseits ist es vernachlässigbar, andererseits will ich das so performant wie möglich machen (aber die bequemlichkeit würde es doch begrüssen, die klasse einfach immer zu initialisieren).
    Zuletzt geändert von invitatoinvitat; 22.06.2004, 10:06.

  • #2
    Wenn Du bei 70-80 Usern täglich schon Serverprobleme hast, dann wirst Du diese sicherlich nicht durch den wechsel des Table-Handlers lösen ... da würde ich mir etwas mehr Analyse des Problems gönnen ... !
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      natürlich.
      wo das problem liegt weiss ich. nur konnte ich damals nicht wissen, was für ausmasse das annimmt, weswegen ich auf performantes programmieren geschissen habe (und ich auch gar nicht das wissen darüber hatte das ich heute habe). aus erfahrung lernt man eben.

      ich suche auch nur nach einer lösung die die derzeitige lage etwas erträglicher macht, solange die neue version noch nicht einsatzbereit ist.
      am derzeitigen code optimieren habe ich anfangs versucht, aber bin dann doch zum schluss gekommen dass neu machen besser ist.

      da ich daran schon 4 monate arbeite, war das jetzt auch nur so eine idee, solange auf innodb umzustellen, da ich gelesen habe, dass es schneller wäre ("Diese Features steigern die Handhabung gleichzeitiger Verbindungen und die Performance.", "InnoDB wurde für maximale Performance bei der Bearbeitung großer Datenmengen entworfen. "). deshalb frage ich ja.
      Zuletzt geändert von invitatoinvitat; 22.06.2004, 12:57.

      Kommentar

      Lädt...
      X