Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Problemy z optymalizacją dużych zapytań i struktury tabel

Możesz zapisać 2 wewnętrzne selekcje, używając zamiast tego JOIN, co z pewnością przyspieszy działanie w obu przypadkach (genre_id = 300 i genre_id = 900 ).

SELECT  
    st.sid, st.title, st.sinopse,  
    (SELECT GROUP_CONCAT(CAST(genre_id AS CHAR)) FROM fanfiction_stories_genres WHERE sid = st.sid) as genres,  
    stats.reviews, stats.recomendacoes,  
    (SELECT GROUP_CONCAT(CAST(warning_id AS CHAR)) FROM fanfiction_stories_warnings WHERE sid = st.sid) as warnings_ids  
FROM  
    fanfiction_stories AS st  
    LEFT JOIN fanfiction_stories_stats AS stats ON st.sid = stats.sid  
    JOIN fanfiction_stories_warnings w ON st.sid = w.sid AND w.warning_id = 5
    JOIN fanfiction_stories_genres g ON st.sid = g.sid AND g.genre_id = 300
GROUP BY st.sid
ORDER BY st.sid ASC  
LIMIT 20  



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP MySQL Wybierz identyfikator z jednej tabeli i informacje z innej tabeli

  2. Jak wybierać aż do osiągnięcia sumy

  3. Używanie .aggregate() na wartości wprowadzonej za pomocą .extra(select={...}) w zapytaniu Django?

  4. Jak mogę stworzyć instalator dla strony internetowej. PHP mysql

  5. Zaznaczyć wszystkie kolumny z wyjątkiem jednej w MySQL?