Поиск по куче индексов тоже будет увеличивать время и вероятнее всего гораздо сильнее, потому что там не будет limit - это раз.
1 Произвольные ключи в индекс добавляются.
function BeforeIndexHandler($arFields)
{
if($arFields["MODULE_ID"] == "iblock")
{
if(array_key_exists("BODY", $arFields) && substr($arFields["ITEM_ID"], 0, 1) != "S")
{
$arFields["BODY"] = "";
if (CModule::IncludeModule('iblock'))
{
$rs = CIBlockElement::GetByID( intval($arFields['ITEM_ID']) );
if ($ar = $rs->Fetch())
{
$arFields['PARAMS']["CODE"] = $ar['CODE'];
}
}
}
if (substr($arFields["ITEM_ID"], 0, 1) == "S")
{
$arFields['TITLE'] = "";
$arFields["BODY"] = "";
$arFields['TAGS'] = "";
}
}
return $arFields;
}