MySQL 5: Welcher Unterschied zur MySQL 4?

Dieses Thema im Forum "Datenbanksysteme für das Web" wurde erstellt von Der_Jan, 10.02.2006.

  1. Der_Jan

    Der_Jan Thread Starter MacUser Mitglied

    Beiträge:
    606
    Zustimmungen:
    7
    MacUser seit:
    06.01.2004
    Moin,
    mein Webspace-Provider fragt mich im Benutzermenu, ob ich eine MySQL 4 oder 5 anlegen möchte. Habe bis heut immer mit der Version 4 gearbeitet und bin mir nun nicht sicher: Funktioniert die 5 genauso wie die 4 oder sind die Unterschiede so erheblich, dass man sich in 5 erst einarbeiten muss?

    Gruß
    Der Jan
     
  2. Eppi

    Eppi MacUser Mitglied

    Beiträge:
    466
    Zustimmungen:
    7
    MacUser seit:
    11.10.2004
    Ich meine Views und Stored Procedures wären neu. Bin aber nicht 100%ig sicher.

    gruss Eppi

    PS: Ich behaupte mal, dass eine Einarbeitung nicht nötig ist! Machst du PHP oder JSP, oder was?
     
  3. master_p

    master_p MacUser Mitglied

    Beiträge:
    1.065
    Zustimmungen:
    23
    MacUser seit:
    31.01.2005
    Ich glaube der größte Unterschied (für den Administrator) ist, dass die Passwortverwaltung bei MySQL5 anders läuft und man deshalb entweder mit "-oldpasswords" konpiliert oder aber die Passwörter neu vergibt, denn man kann sich nicht mehr einloggen, wenn man es mit einem 4er Account bei einer 5er versucht, wo der Dump (einfach so) eingespielt wurde.

    Ansonsten sind eigentlich nahezu alle alten Funktionen gleich geblieben, von daher macht es keinen allzu großen Unterschied für laufende Scripte, ob sie auf einer 4er oder 5er DB laufen. Wie gesagt, hauptsache die Passwörter werden beim Dump korrekt gesetzt.
     
  4. Eppi

    Eppi MacUser Mitglied

    Beiträge:
    466
    Zustimmungen:
    7
    MacUser seit:
    11.10.2004
    Die old-Password Problematik existiert schon seid mindestens 4.1. Falls das eine Hilfe für einen DB-Umzug ist.


    Gruss Eppi
     
  5. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.045
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    mit der Version5 wird aus mysql langsam ein Datenbanksystem, statt nur ein Datencontainer. Subselects gehen glaub ich schon länger, seit wann mysql richtige joins unterstützt weiß ich nicht genau, aber Version 5 beherrscht glaub ich auch schon Stored Procedures und views oder? Fehlen nur noch Trigger und dann wird mysql langsam interessant. Ich bin sicher bei mysql.com gibt es eine feature-Seite die die Neuerungen auflistet!
     
  6. Gunter_S

    Gunter_S MacUser Mitglied

    Beiträge:
    150
    Zustimmungen:
    3
    MacUser seit:
    15.03.2004
    trigger gibt's doch bei MySQL 5 schon.
    nach mysql.com:

    MySQL 5.0 Key Features:
    * Stored Procedures
    * Triggers
    * Views
    * Information Schema
    * Archive Storage Engine

    Gunter
     
  7. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.045
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    mir war so als wären die erst für 5.1 geplant, dann wird mysql langsam interessant :)
     
  8. Gunter_S

    Gunter_S MacUser Mitglied

    Beiträge:
    150
    Zustimmungen:
    3
    MacUser seit:
    15.03.2004
    Ich fände es sehr toll, wenn MySQL mit Objekten wie Oracle umgehen könnte.
     
  9. moses_78

    moses_78 MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    MacUser seit:
    08.04.2005
    Was zur Hölle sind "trigger" bei Datenbanksystemen?

    Danke im Vorraus,
    moses :)
     
  10. Gunter_S

    Gunter_S MacUser Mitglied

    Beiträge:
    150
    Zustimmungen:
    3
    MacUser seit:
    15.03.2004
    ein klassisches Beispiel sind die Preisentwicklungstools bei E-Shops.
    Man definiert einen Trigger auf der Tabelle aller Artikel, so dass immer wenn ein Preis geändert wird, automatisch in einer zweiten Tabelle mitgeloggt wird, wann sich der Preis wie geändert hat.

    also statt manuell folgendes auszuführen:
    Code:
    SELECT costs FROM article WHERE id=[i]xyz[/i];
    INSERT INTO preislog (oldcosts, newcosts, changedon) VALUES ([i]aktueller_preis[/i], [i]neuer_preis[/i], NOW());
    UPDATE article SET costs=[i]neuer_preis[/i] WHERE id=[i]xyz[/i];
    
    macht man beim Anlegen der Tabellen folgendes:
    Code:
    CREATE TABLE preislog (
      id int PRIMARY KEY,
      oldcosts float,
      newcosts float,
      changedon date
    );
    CREATE OR REPLACE TRIGGER Package_Update BEFORE
        UPDATE ON artikel
        FOR EACH ROW WHEN (new.costs != old.costs) Begin
        insert into preislog(id,oldcosts,newcosts,changedon)
       values(:new.id,:old.costs,:new.costs,sysdate);
    End;
    
    und danach kann man ein einfaches
    Code:
    UPDATE article SET costs=[i]neuer_preis[/i] WHERE id=[i]xyz[/i]
    
    machen und alles weitere geschieht automatisch im Hintergrund.

    Die SQL-Statements waren jetzt aus Oracle, bei MySQL wird's aber dann wohl so ähnlich sein, da habe ich Trigger selbst noch nicht benutzt.

    Gunter
     
Die Seite wird geladen...

Diese Seite empfehlen