WHERE `tag_id` = :tag AND `pub_id` = :publication
WHERE `tag_id` = :tagWHERE `pub_id` = :publicationWHERE `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`) использоваться не будут.