Change the learning object structure
The learning-objects table is not optimized at all. Types are literal (should be int), title, description and comment should not be in the same table, as they represent variable length data type. They should, instead, be in a separate table in a 1-1 relationship (learning-objects-details table for example). The problem is that the learning-object could very quickly grow above 1000000 elements, at which points MySQL is known to loose performance considerably on variable-length rows.