![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Witam,
Mamy na aukcje.fm na dole panel losujący aukcje użytkownika lecz poprzez ORDER BY RAND( ) praca jest powolna i ogólnie obciąża serwer głównie gdy użytkownik ma ponad 100K aukcji i wchodzi bot + ruch ludzi. W procesie sql to ciągle to samo zapytanie SELECT * FROM `tabela1` WHERE `user` = "200" AND `closed` =0 AND `suspended` =0 ORDER BY RAND( ) Kod php
Jak można np. dać losowanie szybsze lub nie z pośród całości 100K rekordów lecz z np 200 rekordów od numeru ID aktualnej aukcji. Lub jest inny sposób? |
|
|
![]() |
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Dzięki, ale nie za bardzo właśnie. My losujemy z zapytaniem o numer użytkownika i gdy ma on zbyt wiele aukcji ponad 100K to zaczynają się schody, ale musimy wykazać w losowaniu wszystkie jego aukcje (pod seo). Jedyne co nam trzeba to uprościć jakoś sam sposób losowego typowania aby nie był za każdym razem z całości 100K rekordów ale z pewnej tylko zawężonej strefy rekordów. (aby do losowania nie wczytywał całości rekordów dla danego usera lecz grupę zawężoną , tak aby zawsze typował na wszystkich 100K aukcji wszystkie 100K aukcji. Przewidziana nagroda dla twórcy (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 04:53 |