$sql = "SELECT * FROM `1otsev` WHERE `out_keys` IS NULL";
IS NULL затратная операция, замените все NULL на 0, станет работать быстрее гораздо.
запустите из пхпмайадмин 1 раз:
UPDATE `1otsev` set `out_keys` = 0 WHERE `out_keys` IS NULL
а тут...
$sql = "SELECT * FROM `keys` WHERE `frase`='".mysql_real_escape_string($val)."'";
Пропустим момент того что код был впервые использован еще при царе Горохе, а благополучно забыт еще при Ельцине, относительно таблицы - индекс на frase есть? Вообще везде где вы делаете выборку - нужно индексы.
Вообще неплохо было бы замерить время которое уходит на запрос, а так же план каждого запроса посмотреть, уж очень страшно у вас получается, должно максимум пару минут отрабатывать.