The number of retrieved rows isn't that relevant. What matters is what the queries do, and what indexes they're able to utilize.
How big is the database table?
28 indexes is quite a few (do you really need all of them?) but they wouldn't cause anything like what you're describing. They'll slow down inserts a bit because the indexes have to be updated, but not selects.
You need to debug which queries or events are causing the issues. If this occurs in development, use something like Debugbar and check the Timeline and Queries tabs. Or use Telescope. In production, Pulse will show you the slow queries.
My guess is that either the database queries are poorly designed, they don't utilize indexes effectively, or both. The fact that there are 28 indexes on a table makes me very suspicious. Are these indexes actually designed with the queries in mind, or are they just slapped on every column?
Most likely this issue could be solved by fixing the query or adding a single composite index that's fit for purpose.