Вот так выглядит кусок БД:

Я формирую xml, через php:

PHP код:
<?php
...
$sql=@mysql_query('SELECT * FROM `'.$mysql_table.'`') or die(mysql_error());
echo "<?xml version='1.0' encoding='UTF-8' ?>";
echo "<response>";
for ($i=0;$i<mysql_num_rows($sql);$i++)
{
$res=mysql_fetch_array($sql);
echo "<block>";
echo "<turnir>".$res['turnir']."</turnir>";
echo "<nomer_kruga>".$res['nomer_kruga']."</nomer_kruga>";
echo "<pobeditel>".$res['pobeditel']."</pobeditel>";
echo "<proigravshiy>".$res['proigravshiy']."</proigravshiy>";
echo "<shet>".$res['shet']."</shet>";
echo "<total>".$res['total']."</total>";
echo "<ochki_pobeditel>".$res['ochki_pobeditel']."</ochki_pobeditel>";
echo "<ochki_proigravshiy>".$res['ochki_proigravshiy']."</ochki_proigravshiy>";
echo "</block>";
}
echo "</response>";
?>
И получившийся xml полностью загружаю в приложение. Приложение я делаю для себя, то есть денвер использую просто для того, чтобы была возможность работать с БД.
Дальше происходит множество различных операций, одна из которых получение из всей БД списка игроков. Для этого и необходим цикл из 2500 итераций, так как я заношу первое имя в список, а последующие уже заносятся, если такого имени еще не было.
В качестве примера вот эта функция:

Код AS3:
function ARR_IGROKOV():void
{
var win_zanos = false;
var lose_zanos = false;
arr_igrokov.push(String(xmllist[0].pobeditel));
for (var i=0; i<xmllist.length(); i++)
{
mass_matchey.push(String(xmllist[i].pobeditel),String(xmllist[i].proigravshiy));
win_zanos = false;
lose_zanos = false;
for (var t=0; t<arr_igrokov.length; t++)
{
if (String(xmllist[i].pobeditel)==arr_igrokov[t])
{
win_zanos = true;
}
if (String(xmllist[i].proigravshiy)==arr_igrokov[t])
{
lose_zanos = true;
}
if ((win_zanos==true)&&(lose_zanos==true))
{
break;
}
}
if (win_zanos==false)
{
arr_igrokov.push(String(xmllist[i].pobeditel));
}
if (lose_zanos==false)
{
arr_igrokov.push(String(xmllist[i].proigravshiy));
}
}
arr_igrokov.sort();
}
Эта операция работает, но на других более громоздких вычислениях происходит ошибка "превышено время выполнения".
Я понимаю, что как то я не правильно делаю, что гружу всю БД, но я не понимаю как быть по другому.
Решение разбивать пачками конечно есть, то ест цикл брать не 2500, а 5 циклов по 500 строк например, как говорил maincode, но это все таки как то не оптимально, да и наверно не везде получится применить.