sql >> Databáze >  >> RDS >> Mysql

jedinečný index mysql používaný jako metoda zpracování výjimek v jazyce Java

Říkám, že to neděláte ze dvou důvodů:

  • chybové zprávy jsou trochu nejasné:CHYBA 1062 (23000):Duplicitní záznam 'xxx' pro klíč 1 . Jste si vždy 100% jisti, který klíč je 1?
  • zamkne vás na konkrétního dodavatele databáze

Připadá mi jednodušší transakce :

  • zkontrolovat existenci řádku;
  • vyvolá výjimku, pokud řádek již existuje;
  • vložte nový řádek.

Problémy s výkonem :

Říkám dvakrát měř, jednou řež . Profil použití pro váš konkrétní případ použití. Na začátek bych řekl, že s výkonem nebude problém, s výjimkou scénářů těžkého využití db.

Důvodem je, že jakmile provedete SELECT přes tento konkrétní řádek budou jeho data umístěna do mezipaměti databáze a okamžitě používá se pro kontrolu vkládání prováděnou na indexu pro INSERT tvrzení. Také mít na paměti, že tento přístup je podložen indexem, vede k závěru, že výkon nebude problém.

Ale jako vždy měřte.



  1. Jak NTILE() funguje v SQL Server

  2. Alternativa k částečnému (neagregovaný sloupec) ve skupině podle [Ollivander's Inventory problem on hackerrank]

  3. Řetězec dotazu MySQL obsahuje

  4. GWFG v Oracle RAC