ibase_query()
(nebo, chcete-li, ibase_dsql_execute()
) a ten jeden fetch nemá šanci výsledky podstatným způsobem ovlivnit. Stejně tak je v tomto případě celkem jedno, zda takový typ testu provádíte přes PHP API, céčkové API nebo třeba isql
.
Dobře, tak jsem to zkusil. Výsledek: 528 ms ibase_query()
, 63 ms ibase_fetch_object()
i ibase_fetch_row()
. Aby byly výsledky méně zkresleny náhodnými fluktuacemi, zkusil jsem ještě totéž pro 1000000 náhodně vygenerovaných záznamů místo 266266. Dostal jsem 2058 ms versus 89 ms, tentýž dotaz v isql
ukáže 2.23 s. Takže není pravda ani to, že by byl výsledek ovlivněn efektivitou PHP API, ani to, že by byl (zásadně) ovlivněn chybějícím fetchem.
Pravdu byste měli pouze u druhého testu (s indexem), pak to pro milion záznamů vychází 1 ms na ibase_query()
a 730 ms na ibase_fetch_object()
Na druhou stranu se mi moc nezdá to, co píše autor o importu dat do tabulky. Mám podezření, že z neznalosti používal na každý řádek ibase_query()
; při použití ibase_prepare()
a ibase_execute()
jsem měl tabulku naplněnou za 25 sekund, což by podle výsledků prvního testu odpovídalo necelým třem minutám na jeho systému.