Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie do 7 tabel na innoDB wykonuje się 20 sekund (!), Co robię nie tak?
L_Devil
post
Post #1





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 13.04.2004
Skąd: Łódź

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


Witam. Mam dwie tabele:

Kod
common_parametrs:
+-----+----------+-------------+
| Id  |   name   |    value    |
+-----+----------+-------------+


Kod
user_posters:
+-----+----------+---------
| Id  |   login  |   ...  
+-----+----------+---------


Obie tabele jako InnoDB

  1. SELECT
  2. p.id AS id,
  3. c1.value AS name,
  4. p.login AS login,
  5. c2.value AS version,
  6. c3.value AS pragma,
  7. c4.value AS DATA,
  8. c5.value AS author,
  9. c6.value AS copyrights
  10. FROM common_parametrs AS c1,
  11. users_posters AS p,
  12. common_parametrs AS c2,
  13. common_parametrs AS c3,
  14. common_parametrs AS c4,
  15. common_parametrs AS c5,
  16. common_parametrs AS c6
  17. WHERE c1.name='name' AND c1.owner=p.id AND c2.name='version' AND c2.owner=p.id AND c3.name='pragma' AND c3.owner=c2.owner AND c4.name='data' AND c4.owner=c3.owner AND c5.name='author' AND c5.owner=c4.owner AND c6.name='copyrights' AND c6.owner=c5.owner
  18. ORDER BY c1.value ASC;

Wykonanie tego zapytania trwa dosłownie wieki... dla 96 rekordów do pobrania

Jak temu zaradzić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Normalnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pobierasz wszystkie atrybuty z tym samym id

  1. SELECT up.id, up.name, cp.name, cp.value
  2. FROM common_parametrs cp
  3. JOIN user_posters up
  4. ON up.id = cp.owner
  5. WHERE cp.owner = $jakies_id
Go to the top of the page
+Quote Post
L_Devil
post
Post #3





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 13.04.2004
Skąd: Łódź

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


Cytat(dr_bonzo @ 1.06.2007, 00:08:23 ) *
Normalnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pobierasz wszystkie atrybuty z tym samym id
Myślałem, że jest sprytniejszy sposób, stąd moje niezrozumienie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Problem w tym, że tych userów może być kilka tysięcy, na każdego przypadające po ok. 100 parametrów... Czy jest sens pobierać wszystkie?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 29.12.2025 - 00:35