Дополню
D' Normalization
1. Завести таблицу вида id, slug, причем slug char, будет чуть быстрее (индекс не забываем). А сама таблица с приличной вероятностью будет целиком попадать в кэш.
Самый простой вариант запроса
SELECT id, title, author FROM books WHERE id=(select id from slugs where slug='php-dlya-chajnikov')
2. Добавить в рецепт
sphinxsearch.com, ибо он резок как понос, но это план на очень далёкое будущее, хотя если на нем реализовать поиск по описаниям, то будет очень хорошо.