Skocz do zawartości

Duza baza - duzy problem


Johnek

Rekomendowane odpowiedzi

Witam posiadam dużą bazę niespełna 500 tysięcy zapytań( 3 pola w tabeli) i zrobiłem by pokazywało losowo 20 wyników z tej bazy(losuje po ID).Mimo wszystko strona dalej bardzo powoli chodzi(serwer na nazwa.pl).Co możecie jeszcze poradzić, w jaki sposób można zrobić by chodziło płynniej.Jakies pomysły?

Odnośnik do komentarza
Udostępnij na innych stronach

Witam posiadam dużą bazę niespełna 500 tysięcy zapytań( 3 pola w tabeli)
W bazie danych nie ma zapytań są rekordy[ chyba, że procedury składowane]...

Jeśli masz pola ID to zakładam, że te pola ID stanowią klucze główne a jako takie są indekowane pokombinuj może z losowaniem kilku cyfr a potem zastosowanie ich w klauzuli IN(2,444,50000 itd...) zamiast Rand(). Nie zakładam, że będzie szybsze, ale warto spróbować i wybieranie tylko danych z tabeli jakie są faktycznie potrzebne...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

No wiec polecenie mam takie $res=mysql_query("select * from ....... order by Rand() limit $od,30");

zastanawiams sie tez nad podziałem 1 tabeli na 2 albo nawet 3(nie wiem czy to pomoze) oraz uzyciem polecen count i select(tylko nie bardzo wiem jak to zrobic).Co o tym myslicie?

Odnośnik do komentarza
Udostępnij na innych stronach

.Co o tym myslicie?

Funkcja Rand() w tym zapytaniu jest zbędna i powoduje bardzoooo znaczne wydłużenie czasu pobierania ( sprawdzone empirycznie) PObieranie z Limit $od,30; ok 0,02 sek

z ORDER BY RAND() Limit $od,30; od 7 do 12 sekund

Zrób tak:

Pobierz ilość wszystkich rekordów za pomocą zapytania z Count(*) na bazie wyniku przygotuj odpowiednio zmienną $od

Pobierz dane SELECT nazwy_kolumn FROM ..... Limit $od,30;

Jeśli wynik chcesz dodatkowo wymieszać to pobierz dane do tablicy i ją odpowiednią funkcją przetasuj...

/****/

I nie czekaj na gotowca, ale daj coś z siebie!

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności