Böyle bir şey daha önce hiç görmedim, varsa bile göstermeliktir muhtemelen. İşlemin ne kadar süreceği hiç belli olmaz.

O zaman siz de göstermelik olarak gösterebilirsiniz.
İlk olarak sorgunuzun ne kadar zaman aldığını öğrenin, sonra yaklaşık bir 20-30 sefer çalıştırıp bu sürenin ortalamasını alın, elinizde yaklaşık olarak bir süre olacaktır. İşlem esnasında da bu süreyi baz alarak bir progress bar yapabilirsiniz. Süreyi almak için

$db->query("SET SESSION profiling = 1");
$db->query("senin sql sorgun");
$profile = $db->query("SHOW PROFILES")->fetchAll(2);
print_r($profile);
Buradaki Duration son sql sorgusunda geçen süreyi verecektir.

Diyelim ki 15 saniye çıktı ortalama;
Örnek