Delete by primary key takes too long
Looking at your current information, I see you posted the following info from SHOW INDEXES FROM:


Key_name
Seq_in_index
Column_name
Collation
Cardinality


The indexes you have are


course_id
complete_flag
pass_flag
reported_flag
student_id_2
reported_status
course_id_index


Give the read/ratio of 70%/30%, running a DELETE against a Row in this InnoDB table is not as simple as one would think. Why?

InnoDB's Index structure and Locking. All secondary indexes in an InnoDB table have a key back to the Clustered Index (a.k.a. gen_clust_index). Therefore, index contention (intermittent deadlocking) would always be a problem. I have written past posts about this drawback


MySQL deadlock - cannot restart normally?
Preventing mysql deadlocks in your php application that uses SELECT… LOCK IN SHARE MODE
Are InnoDB Deadlocks exclusive to INSERT/UPDATE/DELETE?


If you are always having this issue with DELETE on a single row, you may want to think about applying either a tombstone table or adding a deleted flag to your table. I wrote a post about this as well: Tombstone Table vs Deleted Flag in database syncronization &amp; soft-delete scenarios