Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Unikalny indeks mysql używany jako metoda obsługi wyjątków w java

Mówię, że tego nie robisz z dwóch powodów:

  • Komunikaty o błędach są nieco niejasne:BŁĄD 1062 (23000):Zduplikowany wpis „xxx” dla klucza 1 . Czy zawsze masz 100% pewności, który klucz to 1?
  • unieruchamia cię do konkretnego dostawcy bazy danych

Uważam, że łatwiej jest transakcyjnie :

  • sprawdź istnienie wiersza;
  • zgłoś wyjątek, jeśli wiersz już istnieje;
  • wstaw nowy wiersz.

Problemy z wydajnością :

Mówię zmierz dwa razy, wytnij raz . Profiluj użycie dla konkretnego przypadku użycia. Z dumą powiedziałbym, że wydajność nie będzie problemem, z wyjątkiem scenariuszy intensywnego użycia bazy danych.

Powodem jest to, że po wykonaniu SELECT nad tym konkretnym wierszem jego dane zostaną umieszczone w pamięci podręcznej bazy danych i natychmiast używane do sprawdzania wstawiania wykonywanego w indeksie dla INSERT oświadczenie. Pamiętaj także, że dostęp ten jest poparty indeksem, prowadzi do wniosku, że wydajność nie będzie problemem.

Ale, jak zawsze, mierz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zaloguj się jako Administrator i zwykły użytkownik

  2. Projekt bazy danych dla systemu frekwencji w szkołach

  3. executemany dla błędu MySQLdb dla dużej liczby wierszy

  4. JDBC PreparedStatement powoduje błąd składni MySQL

  5. Po zduplikowanym kluczu aktualizuj tylko wartości Null lub puste