Это может быть возможно, но при этом вы теряете много функциональности. Благодаря отдельным строкам для каждого поля у вас есть возможность поиска и индексации на основе поля. Используя ваш пример, вы можете перечислить книги по цене или по автору.
С сериализованными полями вам придется сначала загрузить всю информацию о книге, а затем проанализировать весь массив на стороне сервера, чтобы отсортировать его, прежде чем вернуть его в браузер. Это включает намного дополнительных накладных расходов и значительно замедлит процесс.
Таким образом, хотя можно было бы сериализовать поля, было бы не рекомендуемым использованием пользовательских полей. Кажется, здесь вас больше всего беспокоит количество строк в базе данных ... и даже с 1000 книгами с 5 настраиваемыми полями это не является существенной проблемой. Я установил WordPress с 10 000 сообщений в каждом с 10 пользовательскими полями без каких-либо проблем с производительностью.