각 사용자마다 계정이 있고 각 계정에 여러 권한이있는 MySQL 데이터베이스가 있습니다.MySQL 성능 : GROUP_CONCAT을 사용하는 단일 쿼리 또는 두 개의 개별 쿼리?
궁극적 인 목표는 계정의 사용자 이름과 쉼표로 구분 된 사용 권한 ID 목록으로 끝내는 것입니다. 이 개 내가이 작업을 수행 할 수있는 방법이 있습니다 : 단일 쿼리
SELECT a.username, GROUP_CONCAT(rp.permission_id) as permission_ids
FROM account AS a
JOIN role_permission AS rp
ON rp.role_id = a.role_id
WHERE a.id = 1902
... 나 ...
SELECT username
FROM account
WHERE id = 1902;
SELECT permission_id
FROM account_permission
WHERE account_id = 1902
, 나는 내가 그들을 원하는대로 정확하게 내 결과를 얻을 수 있습니다. 두 개의 쿼리를 사용하면 두 번째 결과 집합을 사용하여 응용 프로그램 (PHP)에 쉼표로 구분 된 목록을 만들어야합니다.
첫 번째 옵션을 선택하지 않는 성능상의 이유가 있습니까? 전에 GROUP_CONCAT을 사용 해본 적이 없으므로 성능에 현명한 의미를 알지 못합니다.