Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Eindeutiger mysql-Index, der als Ausnahmebehandlungsmethode in Java verwendet wird

Ich sage aus zwei Gründen, dass Sie das nicht tun:

  • Die Fehlermeldungen sind etwas unklar:ERROR 1062 (23000):Duplicate entry 'xxx' for key 1 . Sind Sie sich immer 100 % sicher, welcher Schlüssel die 1 ist?
  • Es bindet Sie an einen bestimmten Datenbankanbieter

Ich finde es transaktional einfacher :

  • Überprüfen Sie, ob die Zeile vorhanden ist;
  • Eine Ausnahme auslösen, wenn die Zeile bereits vorhanden ist;
  • fügen Sie die neue Zeile ein.

Leistungsprobleme :

Ich sage zweimal messen, einmal schneiden . Profilieren Sie die Nutzung für Ihren spezifischen Anwendungsfall. Ich würde sagen, dass die Leistung kein Problem sein wird, außer in Szenarien mit starker DB-Nutzung.

Der Grund dafür ist, dass Sie einmal ein SELECT ausführen über dieser bestimmten Zeile werden ihre Daten sofort in den Datenbankcaches abgelegt Wird für die Einfügungsprüfung verwendet, die auf dem Index für INSERT durchgeführt wird Aussage. Auch wenn man bedenkt, dass dieser Zugriff durch einen Index gestützt wird, lässt sich daraus schließen, dass die Leistung kein Problem darstellt.

Aber messen Sie wie immer.