стандартный это full table scan, когда база просто построчно читает и сравнивает, а индекс это такое дерево, емнип, в котором хранятся указатели на строки которые под него попадают
Так он разве не построчно будет смотреть проиндексированные поля ?
флоаты нужны для получение результата операции условный int / int = float - всё хорошо а вот если ты флоат используешь как один из операндов - есть неиллюзорный шанс пострелять по ногам