[SQL][MySQL] SQL_CALC_FOUND_ROWS와 FOUND_ROWS()
화면을 구성할 데이터를 SELECT 할 때
페이징 기능 등을 위해서 데이터의 row 수를 같이 반환해야 할 때가 있다.
이 때
select count(*) as total from DATA;
select * from DATA;
결과 : 150 & 데이터
이렇게 두번의 100퍼센트 스캐닝을 하게된다
이를 방지하기 위한 mysql 기능이다.
FOUND_ROWS()
select * from DATA;
select FOUND_ROWS();
결과 : 데이터 & 150
직전 쿼리 수행 결과에서 row수를 반환한다.
이로써 100퍼센트 스캔을 두 번 실행하는 경우를 없앴다.
FOUND_ROW()는 LIMIT 를 따른다.
select * from DATA LIMIT 10;
select FOUND_ROWS();
결과 데이터(10개) & 10
여기서 limit 를 제외한 전체 row 수를 찾기 위한 조건
select SQL_CALC_FOUND_ROWS * from DATA limit 10;
select FOUND_ROWS();
결과 : 데이터(10개) & 150
참조
Author And Source
이 문제에 관하여([SQL][MySQL] SQL_CALC_FOUND_ROWS와 FOUND_ROWS()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@isntkyu/SQLMySQL-SQLCALCFOUNDROWS와-FOUNDROWS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)