Po vyhledání ve velké DB tabulce funkce fetchAll trvá dlouho

jedlicka
Člen | 61
+
0
-

Zdravím,

mám DB tabulku, která obsahuje hodně dat (2 miliony řádků) a potřebuji v ní najít záznamy podle více sloupců (hledaný text může být kdekoliv).

Provedu:

$warehouse_data = $this->database->table('warehouse_data')->where('kod RLIKE ? OR nazev RLIKE ? OR popis RLIKE ? OR vyrobni_kod RLIKE ?', 'text', 'text', 'text', 'text')->limit(50);

Dejme tomu, že výsledek obsahuje pouze jeden záznam.
Výsledek je celkem rychlý.
Pokud ovšem na výsledku provedu fechAll() nebo count('id'), tak ten fetch trvá několik vteřin.

Čím to, když se převádí výsledek na pole pouze jednoho záznamu?
Případně nějaká rada?

PS: Pokud udělám v tom SQL LIKE pouze na jeden sloupec, tak je to rychlý.

Díky.

Martin