How can i improve MySQL Delete performance?
When You SELECT data - You are work with InnoDB memory cache, You not write to disk, You are not log operations.

It is normal when same select thousands time faster then DELETE.

When You run DELETE command, MySQL must:


do the same as SELECT - found rows
log operation (write into redo-log files)
mark rows as deleted
lock deleted rows - wait if any other operations use them
update indexes


2 sec it is not significant huge time, but if it make collisions for other operations - You can to split operation for chunks