Lock Table oder InnoDB

Mike Proft

Grünschnabel
Hallo zusammen :) ,

um mir den Sonntag auch restlos zu versauen, beschäftige ich mich mit folgendem Prob:

- ich habe eine MySql-DB ( Typ MyISAM ) u.a. eine Select-Abfrage welche eine Nummer erzeugt, die sich zusammensetzt aus Kundennummer und letzter ID des Kunden +1

Nun wäre mein Kunde ja kein richtiger Kunde, wenn er nicht gleich einen Sonderfall erwischen würde -> 2 Mann legen gleichzeitig einen Fall an.

Dies bedeutet, dass während der Sitzung beide die gleiche Nummer erhalten.

Die Frage ist, was hinsichtlich geringsten Aufwand - grösstem Sinn, am sinnvollsten erscheint:

- Tabellentyp auf InnoDB und Transaktionen umstellen, oder

- einfach ein Lock Table zu setzen

Für hilfreiche Tipps, über ein WIE und WAS, würde ich mich freuen.

Jrooßß

Mike
 
Ich würde auf InnoDB setzen. FK, auch cascadierend und besseres Caching usw. machen das Arbeit sehr angenehm..

Chris
 
Hey Chris,

danke für das Feedback. Habe mir mitlerweile viel angegoogelt und bin zu folgendem Schluss gekommen.

Diese DB nicht ändern, das scheint ja was mehr Aufwand zu sein, wenn überhaubt lieber eine neue InnoDB mit gleicher Struktur und per insert, schrittweise alles rein.

Ich werde hier nun LOCKEN, bremst zwar die Performance, aber gar so frequentiert ist das Ding nicht.

Aber danke, IDB werde ich in Zukunft nur noch nehmen ;-))

Aber noch ne Frage, ist Berkley DB nicht noch besser ? Und wie implementiert ?
BEI


SHOW VARIABLES LIKE 'have_bdb'; Kommt als Result DISABLED



Gruss

Mike
 
Hi Mike,

freut mich, dass Du Interesse an InnoDb hast. Wir haben extra hierzu einen Wissenspool und ein Forum, da wir uns so einen guten Austausch mit anderen Usern erhoffen, die mehr als nur nen MiniWebshop mit MySQL realisieren.

Würd mich freuen, noch jemanden wie Dich dort zu sehen, um dieses dochr echt spezifische Wissen auszutauschen.

SDH

So nun zu Deinen Fragen.

Berkley soll angeblich nicht stabil laufen. Ich persönlich habe vor allem den Eindruck, dass sich bei InnoDb viel mehr tut. Auch findet man zu InnoDB aktuellere Sachen. "Früher" war Berkley wesentlich aktiver.

SHOW VARIABLES LIKE 'have_bdb'; Kommt als Result DISABLED

Diese Info erhälst Du, wenn der Server ohne diese Erweiterung gestartet wurde. Du musst den MySQL Dienst anhalten, deregistrieren und dann den Server mit der Erweiterung starten. Das steht in der Doku von MySQL drinne und bei uns auf SDH haben wir allgemein auch nen beitrag dazu, wenn ich mich recht erinnere.

Chris
 
Feedback

Hallo CHRIS,

thx für den Link, werde ich mir auf alle Fälle mal anschauen. Man liest sich bestimmt dort dann einmal.

Gruss


Mike
 
Zurück