Sorry, after looking at the IDBCursor doc in MDN, I found I was wrong about the cursor. I thought that is readonly cursor. But it is not. It supports update and delete. I can try to change the code to use it and test its performance. That should be better than getAll.