execute
có lẽ không nhanh hơn executeInsert
, thậm chí có thể chậm hơn (trên ICS execute
cuộc gọi executeUpdateDelete
và loại bỏ giá trị trả về). Bạn cần phải kiểm tra điều đó nhưng tôi nghi ngờ bạn sẽ tìm thấy sự khác biệt thực sự ở đây.
AFAIK, Thật an toàn khi chỉ sử dụng execute
nếu bạn không cần giá trị trả về nhưng tôi sẽ không tính đến việc giữ nguyên giá trị đó trong các phiên bản Android trong tương lai. Tài liệu nói không, vì vậy có thể ai đó sẽ thay đổi hành vi để phản ánh điều đó. Các triển khai cũ hơn dường như sử dụng execute
quá (ví dụ:2.1 delete()
mã nguồn). Ví dụ như Jelly Bean đã thay đổi rất nhiều đằng sau SQLite, nhưng nó vẫn sẽ hoạt động khi sử dụng execute
Ngoài ra, nếu bạn không sử dụng cùng một SQLiteStatement
lặp đi lặp lại trong khi chỉ buộc lại các args, nó có lẽ không đáng sử dụng. Tạo một cái mới mỗi khi bạn gọi insert
thông thường , update
, ... các phương thức nhanh hơn so với truy cập cơ sở dữ liệu thực tế và I / O đĩa yêu cầu. Mặt khác, các giao dịch giúp ích rất nhiều, vì việc đồng bộ hóa trạng thái cơ sở dữ liệu trên đĩa cho mỗi câu lệnh thực sự rất chậm.