Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql уникален индекс, използван като метод за обработка на изключения в java

Казвам, че не правите това по две причини:

  • съобщенията за грешка са малко неясни:ГРЕШКА 1062 (23000):Дублиран запис „xxx“ за ключ 1 . Винаги ли сте 100% сигурни кой ключ е 1?
  • заключва ви към конкретен доставчик на база данни

Намирам, че е по-лесно за транзакционно :

  • проверете за съществуването на реда;
  • извеждане на изключение, ако редът вече съществува;
  • вмъкнете новия ред.

Проблеми с производителността :

Казвам измери два пъти, изрежи веднъж . Профилирайте употребата за вашия конкретен случай на употреба. Отгоре на главата си бих казал, че производителността няма да бъде проблем, освен при тежките сценарии за използване на db.

Причината е, че след като извършите SELECT над този конкретен ред, неговите данни ще бъдат поставени в кеша на базата данни и незабавно използва се за проверка на вмъкване, извършена в индекса за INSERT изявление. Също така, като се има предвид, че този достъп е подкрепен от индекс, води до заключението, че производителността няма да бъде проблем.

Но, както винаги, измерете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да търся (независимо от главни букви) в колона, използвайки заместващ знак LIKE?

  2. Разберете къде се забавя вашият PHP код (проблем с производителността)

  3. ако таблицата не съществува, изпълнете дълга заявка

  4. Грешка в MySQL заявката 1054

  5. MySQL заявка за текущо време по GMT