![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 9.07.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam kod, który aktualizuje mi dane na stronie ale wykonuje się on dosyć długo ze względu na złożoność operacji jaką musi wykonać. Postanowiłem podzielić proces na pare razy przy użyciu ORDER BY RAND() i LIMIT. Strona działa dwa razy szybciej, ale gdzie nie spojrzę ORDER BY RAND() jest krytykowane z każdej strony. W normalnym zapytaniu aktualizowane są dane około 150 elementów, przy rand dałem limit 25. Drugą sprawę jest, że nie do końca rozumiem zapis tego kodu, dodałem komentarze tam gdzie wiem co się dzieję, a tam gdzie nie mam nadzieje że mi ktoś wyjaśni wtedy może będę miał możliwośc zrobienia czego samemu. Kod:
Struktura w bazie danych oraz nałożone indeksy: test_site(lista obiektów do których można się zapisać): (IMG:http://clip2net.com/clip/m106573/thumb640/1387410487-clip-234kb.png) test_sites(tutaj znajduję się liczone zapisy): (IMG:http://clip2net.com/clip/m106573/thumb640/1387410544-clip-86kb.png) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Wykonaj zapytanie EXPLAIN SELECT ... Twojego zapytania - zobaczysz, jak wygląda jego obsługa przez bazę danych.
2. Jeżeli korzystasz z silnika InnoDB cały kod powinieneś objąć transakcją. Nie dość, że zapewni to spójność danych to dodatkowo przyspieszy cały kod. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 23:53 |