Autor Zpráva
jan01
Profil *
Zdravim, je nejaky zpusob jak rychle vybrat jeden nahodny radek podle vice podminek v tabulce kde je napr. 1 000 000 zaznamů??

Ukazka podminek:
SELECT id_zaznamu FROM `db`.`test` WHERE sloupec_cislo+1 >= 2 AND sloupec_1 > sloupec_2

Diky

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
ahoj
Profil *
na konec přidej ORDER BY RAND()


.. a pak LIMIT 1
Str4wberry
Profil
Nejrychlejší to bude ve stylu tohoto:



To ORDER BY RAND() bude pro milion záznamů dost pomalé.
Kajman
Profil
Pokud tam je např. id o kterém víte, že je třeba v rozmezí 1 a 1 500 000 a řádků splňujících podmínku je většina, tak si vypočítejte náhodnou hranici id - např 750 000 a zkuste, zda bude dostatečně rychlé něco takového

SELECT id_zaznamu FROM `db`.`test`
WHERE  ID>=750000 -- pripadne < kdyz bude vylosovane id moc velke (nebo  < az v druhem dotaze)
HAVING sloupec_cislo >= 1 AND sloupec_1 > sloupec_2
LIMIT  1

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: