Как оптимизировать базу данных?
Два действия полностью противоречат друг другу. 

Оптимизирую сайт по скорости загрузки
Добавляем индекс по полю publication

Во время интенсивной загрузки индексы и триггеры и констрейнты мешают. Их выключают обычно.

Вообще чтоб дальше продолжать обсуждать - надо задать много вопросов. Что вы делаете вообще? Вы 1 раз загружаете или каждый день будете загружать?

Это одноразовый запрос 
SELECT COUNT(*)
или будете каждый день его дёргать?

Все эти вопросы важны чтобы понять в какую сторону вы хотите улучшать. Оптимизация БД - это система компромиссов. Вы в одном месте что-то отключаете или наоборот включаете чтобы получить перформанс. Но вы теряете что-то в другом.
Чтобы оптимизировать сайт по скорости загрузки, надо не читать разный мусор в интернете, а сначала разобраться, в каком именно месте тормозит. 
Потом с этим местом приходить на Хабр

Бессмысленность хаотичных телодвижений на основании информации из интернета показывает уникальный индекс на id, который здесь нужен как корове седло.
И полный АДЪ в виде ключа normal.