Autor Zpráva
slovakCZ
Profil
Dobrý den,

potřebuji v rámci optimalizace (moc dotazů na databázi) seskupit do jednoho dotazu následující:
count, select a insert.

Jde o to, že se nejdříve připojím k db, poté sečtu všechna ID, poté se znovu dodáži na db a provedu nějaké výpočty a vykreslení na stránku pomocí php a po tomto výpočtu a vykreslení se dotazuji znovu na db a vložím do ní nějaká data (ty ovšem nejsou výsledkem výpočtu, takže je možné tento krok vložit před výpočet a vykreslení na stránku).
takže v podech se děje toto:
1. sečti všechna ID (count)
2. vyber nějaké data z DB (select)
3. pracuj s vybranými daty
4. vlož do DB nový řádek (obsah řádku není závislý na bodu 3.) (insert)

výhoda také je, že v databázi mám pouze jednu tabulku.. Tím pádem body 1,2,4 pracují jen s touto jednou tabulkou.

Je tedy možné seskupit body 1, 2 a 4 do jednoho mysql dotazu? Budu rád když mi poradíte na nějakém příkladě. Pro příklad postačí, když budem uvažovat že fiktivní tabulka "table" má tyto sloupce: ID, TITLE, TEXT, DISABLED

DĚkuji za Vaše rady.

Tom
TomášK
Profil
Dotaz může volat proceduru uloženou na serveru, která může provést, co je třeba a vrátit nějaká data. INSERT data nevrací, tedy bez procedury pokud vím není možné vkládat data a zároveň nějaká vracet. Z hlediska optimalizace bych nejdřív řešil cachování, pak náročnost samotných dotazů na databázi, počet dotazů většinou nebývá úzké hrdlo. Ale možná to pro váš případ neplatí, nevím.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0