61 Востаннє редагувалося ktretyak (29.10.2014 12:50:19)

Re: Збереження результатів виконанння sql запиту

Regen написав:

було таке) і про запит у 300 рядків казали, де вона дає ефективність)

300 рядків коду запита (не плутати з 300 рядками вибірки з таблиці)

62

Re: Збереження результатів виконанння sql запиту

ktretyak написав:
Regen написав:

було таке) і про запит у 300 рядків казали, де вона дає ефективність)

300 рядків коду запита (не плутати з 300 рядками вибірки з таблиці)

я пам'ятаю)

63 Востаннє редагувалося Regen (30.10.2014 18:50:07)

Re: Збереження результатів виконанння sql запиту

сьогодні вирішив проблему
ось як тепер усе праює:

1.за допомогою запиту

SELECT COUNT(*) FROM table WHERE len=5

вибираю кількість записів, які мають 5 букв (це, до речі працює 72мс)

2.результат запита, отриманий на попередньому кроці, використовую для генерації рандомного номеру потрібного запису (вірніше його порядку, наприклад 10- 10-ий запис, де кількість букв 5)
і зберігаю, припустімо, у змінній num

3. юзаю ось такий запит, в якому уже не використовую RANDOM() який найбільше його тормозив

SELECT word FROM table WHERE len=5 LIMIT num,1 

на виконання усіх цих дій йде близько 134мс (в принципі можна кількість записів записати у файлик і тоді це працюватиме приблизно удвічі швидше)

Висновок: RANDOM() краще не юзати, бо він в першу чергу вибирає усі дані, які відповідають умові, а тоді здійснює їх хаотичне сортування, що займає в рази більше часу, ніж використання власного метода вибору рандомного запису

P.S.  дякую усім за відповіді, особливо, юзерам koala та ailkiv, без порад яких мені б не вдалось оптимізувати запит