Database engines are the software components that store, retrieve, modify, and delete data in a database management system. Different database engines are needed because applications have varying requirements - for some performance is key, others prioritize frequent reads/writes, and some focus more on searching capabilities. Common database engines include InnoDB and MyISAM. Each engine has its own pros and cons. For example, MyISAM is designed for frequent reads and locks entire tables during updates, while InnoDB focuses on transactions and only locks individual rows. The optimal engine depends on an application's data access patterns and priorities for things like concurrency, integrity, and speed.