In a recent application running on MySQL we frequently faced application deadlocks caused by irresponsive database. After looking at it carefully, in most of the cases, the tables were created using the MyISAM engine locking the entire table even when the user was just issuing long running SELECT statements.
After changing the engine to InnoDB to a number of tables with frequent updates, the problem has been solved.