Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nadmierne obiążenie serwera bazy mysql, MYSQL
sylwekb
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (0%)
-----


Poniższe zapytanie wygenerowało w mojej bazie danych ok 2.5GB tabelę tymczasową na serwerze MySQL co dodatkowo przyczyniło się do obciążenia dysku serwera MySQL.

  1. SELECT l.log_docid, l.log_ip, l.log_datetime, l.log_user, d.dmname, u.name FROM nazwa_tabeli_docman_log l, nazwa_tabeli_docman d, nazwa_tabeli_users u WHERE l.log_docid = d.id AND (l.log_user = u.id OR l.log_user=0) ORDER BY l.log_datetime DESC LIMIT 50G



Chyba wiem jak powinna wyglądać takie zapytanie

  1. SELECT l.log_docid, l.log_ip, l.log_datetime, l.log_user, d.dmname, u.name FROM rzeczyca_docman_log l FORCE INDEX(idx_ldattim), rzeczyca_docman d, rzeczyca_users u WHERE l.log_docid = d.id AND (l.log_user = u.id OR
  2. l.log_user=0) ORDER BY l.log_datetime DESC LIMIT 50G



tylko dlaczego generuje błąd? #1064 - Something is wrong in your syntax obok '50G' w linii 2

Ten post edytował sylwekb 23.04.2013, 11:39:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
matiit
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


Z tego co kojarzę to FROM
Kod
nazwa_tabeli_docman_log l, nazwa_tabeli_docman d, nazwa_tabeli_users u

Stworzy Ci tabelę tymczasową o mocy |tabela1| * |tabela2| * |tabela3|, gdzie |x| to moc x.

To będzie największe wąskie gardło.
Joinami się zainteresuj.

Co do indexów:
http://dev.mysql.com/doc/refman/5.0/en/create-index.html
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 21:07