WHERE `tag_id` = :tag AND `pub_id` = :publication
WHERE `tag_id` = :tag
WHERE `pub_id` = :publication
WHERE `pub_id` = :publication AND `tag_id` = :tag
я не уверен, надо смотреть EXPLAIN. WHERE `dist` > 100
- может использоваться индекс по `dist`.WHERE sqrt(`dist`) > 10
- индекс использоваться не будет.WHERE `dist` > 100 AND `type` = 'shop'
- будет использоваться индекс (`dist`, `type`) или (`dist`), индексы (`type`) и (`type`, `dist`) использоваться не будут.