Buduję aplikację PHP, która dostanie dużo ruchu. Zawsze nauczyłem się, że powinienem ograniczyć liczbę zapytań SQL (obecnie jest to około 15 na gościa). Mogę ograniczyć to do około połowy, używając PHP do filtrowania i sortowania danych, ale czy będzie to szybsze? Ewentualnie mogę użyć "JOIN" w zapytaniu, aby zmniejszyć liczbę zapytań, ale czy jest to naprawdę szybsze niż wykonywanie wielu zapytań? Dzięki!Wykonaj więcej lub bardziej skomplikowane zapytania SQL lub użyj PHP do filtrowania danych?
Odpowiedz
Jeśli masz 15 zapytań na gościa, najprawdopodobniej zrobiłeś coś złego, chyba że Twoja aplikacja jest dość duża.
Korzystanie z PHP na sortowanie i filtrowanie danych zamiast MySQL
Doing sortowanie i filtrowanie w PHP nie uczyni aplikację szybciej, pozwoli on wolniej na pewno, MySQL jest zoptymalizowany być bardzo szybko podane odpowiednie indeksy, więc powinieneś z niego korzystać, kiedy tylko możesz.
Dowiedz się więcej o indeksowaniu baz danych, co ułatwi Ci życie i zwiększy wydajność aplikacji. Oto link:
http://www.mysqltutorial.org/mysql-create-drop-index.aspx
Dołączenie kontra wieloma zapytaniami
Pytasz czy używając dołączyć byłby szybszy niż wykonywanie wielu zapytań.
Odpowiedź brzmi: tak, zawsze szybciej będzie korzystać z łączenia z odpowiednimi indeksami. Który powraca również do pierwszego tematu, indeksowania.
Pamiętaj jednak, że łączenie jest tak wydajne, jak to tylko możliwe, będzie bardzo skuteczne, jeśli zostanie wykonane prawidłowo, i będzie bardzo powolne, jeśli zrobi się źle, więc musisz znać podstawy, aby zrobić to dobrze.
Możesz zajrzeć tutaj wstępem do przyłączenia to:
http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-basic-of-joins/
- 1. Użyj PHP do sformatowania wejściowego zapytania SQL jako HTML?
- 2. skomplikowane zapytania mysql problem
- 3. XSLT: użyj wielu lub więcej szablonów do zastosowania-szablonów
- 4. Jak wstawić stałą PHP do zapytania SQL?
- 5. Wynik zapytania SQL w łańcuchu znaków (lub zmiennej)
- 6. Programowanie Java - Spring i JDBCTemplate - Użyj zapytania, queryForList lub queryForRowSet?
- 7. Wcześniejsza baza danych serwera SQL do klastrowanego indeksu lub nie
- 8. Skomplikowane SQL Dołącz
- 9. Struktura danych do filtrowania wszystkich par-więcej punktów?
- 10. Aby uzyskać więcej informacji, użyj jednego lub kilku plików CSS?
- 11. Wiosenne dane mongo użyj LUB w Zapytaniu
- 12. Użycie zapytania SQL do wysłania zapytania do kolumny danych XML
- 13. Użyj bind1st lub bind2nd?
- 14. Jak uzyskać i/lub zapisać kryteria zapytania do bazy danych?
- 15. DisMax do analizy kwerend użytkownika i q lub fq do filtrowania wyników
- 16. Wykonaj dwa różne zapytania w jednej transakcji
- 17. NHibernate lub kryteriów zapytania
- 18. Ransack LUB zapytania
- 19. Mongoid: I - lub zapytania
- 20. SQLite3 (lub ogólnie SQL) odzyskać n-ty wiersz wyniku zapytania
- 21. PHP/SQL: ORDER BY lub sort ($ tablica)?
- 22. Użyj pip lub conda do zarządzania pakietami?
- 23. Ocena na dwie lub więcej list
- 24. dwa lub więcej zagnieżdżonych RelativeLayout
- 25. Operator analogiczny do + = lub. = W PL/SQL?
- 26. Bardziej zwarte przestrzenie nazw ElementTree lub lxml
- 27. SQL Server Wykonaj personifikacji
- 28. Jak korzystać z 2 lub więcej baz danych ze sprężyną?
- 29. Czy bardziej wydajne jest rozgałęzianie lub mnożenie?
- 30. Excel: Użyj wartości komórki jako parametru dla zapytania SQL
zrobić w db, ale dopiero po dowiecie się wiele o „indeksów” dla tabel. – goat
15 zapytań sql na użytkownika na stronę? Och Jezu. – Dementic