Mysql
 sql >> база данни >  >> RDS >> Mysql

Въпрос за ефективността на SQL заявката (множество подзаявки)

Ако „активен“ е първият по азбучен ред, може да можете да намалите подзаявките до:

SELECT p.id, r.status, r.title
FROM page AS p
    INNER JOIN page_revision as r ON r.pageId = p.id AND 
        r.id = (SELECT r2.id 
                FROM page_revision as r2 
                WHERE r2.pageId = r.pageId 
                ORDER BY r2.status, r2.id DESC
                LIMIT 1)

В противен случай можете да замените реда ORDER BY с

ORDER BY CASE r2.status WHEN 'active' THEN 0 ELSE 1 END, r2.id DESC

Всичко това идва от моите предположения за SQL Server, вашият пробег с MySQL може да варира.



  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 PDO вмъкване на множество (10000+) едни и същи реда с помощта на bindParam. Добра практика?

  2. MySQL скриптовете в docker-entrypoint-initdb не се изпълняват

  3. Как да управлявате MySQL бази данни, потребители и таблици от командния ред

  4. вътрешно присъединяване и ефективност на клаузата къде in()?

  5. Използвайте повторно редове в mysql таблица без автоматично увеличаване