$arr = ['account.ban', 'account.changePassword', 'account.getActiveOffers'];
$result = array_unique(array_merge(...array_map(function($el) { return explode('.', $el); }, $arr)));
var_dump($result);
/*
array(4) {
[0] => string(7) "account"
[1] => string(3) "ban"
[3] => string(14) "changePassword"
[5] => string(15) "getActiveOffers"
}
*/
console.log(!1) // false
console.log(!0) // true
тут дело не в покрытии, а в том что идет поиск прямо в индексеЭто и называется "покрывающий индекс". Если размер записи индекса гораздо меньше размера всей строки, то MySQL может использовать индекс даже для неиндексного поиска (например, LIKE '%vasya%'). Ускорение достигается за счёт более плотного расположения данных в индексе, чем в самой таблице, и, соответственно, лучшего использования кэша диска.