Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

chỉ mục duy nhất của mysql được sử dụng làm phương pháp xử lý ngoại lệ trong java

Tôi nói rằng bạn không làm điều đó, vì hai lý do:

  • thông báo lỗi hơi không rõ ràng: ERROR 1062 (23000):Mục nhập trùng lặp 'xxx' cho khóa 1 . Bạn có luôn chắc chắn 100% khóa nào là 1 không?
  • nó gắn bạn với một nhà cung cấp cơ sở dữ liệu cụ thể

Tôi thấy giao dịch đơn giản hơn :

  • kiểm tra sự tồn tại của hàng;
  • ném một ngoại lệ nếu hàng đã tồn tại;
  • chèn hàng mới.

Vấn đề về hiệu suất :

Tôi nói đo hai lần, cắt một lần . Lập hồ sơ việc sử dụng cho trường hợp sử dụng cụ thể của bạn. Tôi muốn nói rằng hiệu suất sẽ không có vấn đề gì ngoại trừ các trường hợp sử dụng db nặng.

Lý do là khi bạn thực hiện SELECT trên hàng cụ thể đó, dữ liệu của hàng đó sẽ được đặt trong bộ nhớ đệm của cơ sở dữ liệu và ngay lập tức được sử dụng để kiểm tra chèn được thực hiện trên chỉ mục cho INSERT bản tường trình. Cũng nên nhớ rằng quyền truy cập này được hỗ trợ bởi một chỉ mục dẫn đến kết luận rằng hiệu suất sẽ không phải là vấn đề.

Nhưng, như mọi khi, hãy đo lường.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:kết quả từ bảy ngày qua

  2. Cài đặt Máy chủ Web trong Windows XP với Apache2, PHP5 và MySQL4 - Phần 1

  3. MySQL không khởi chạy trên XAMPP

  4. Xuất kết quả của một truy vấn Mysql sang excel?

  5. Mức cho phép tối đa cho group_concat_max_len trong MySQL là bao nhiêu?