>  기사  >  백엔드 개발  >  MySQL 데이터 검색 문제.

MySQL 데이터 검색 문제.

WBOY
WBOY원래의
2016-09-03 00:14:121122검색

    date는 날짜를 나타내고 user_id는 사용자의 ID를 나타내며 count_name은 특정 통계값을 나타냅니다.

  1. count_name 가능한 값 ​​(a1,a2,a3,···,a12,b1,b2,b3,···,b12);

  2. 매일 수만 건의 기록이 생성됩니다.

  3. 한 번에 데이터베이스에서 검색할 수 있는 최대 레코드 수는 10,000개입니다.

  4. 이제 12개의 값을 세어야 합니다. mysql 문은 다음과 같이 표현할 수 있습니다.

  5. 이런 식으로 데이터베이스를 12번 가져오면 결과를 얻을 수 있지만 효율성은 높지 않습니다.

원하는 데이터를 한번에 불러올 수 있는 방법이 있나요? (상대적으로 데이터량이 많은 오래된 데이터베이스입니다. 데이터베이스 수정은 최종 고려사항입니다!)

<code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); 
select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); 
···</code>
시도한 방법:

페이징 통계의 경우 테이블에 기본 키가 없으므로 페이징 처리가 어렵습니다.

  1. 한 번에 처리할 데이터를 가져옵니다. MySQL은 한 번에 약 10,000개의 데이터만 가져올 수 있다는 제한으로 인해 더 이상 가져오면 붕괴될 수 있습니다.

  2. 답글 내용:

  3. date는 날짜를 나타내고 user_id는 사용자의 ID를 나타내며 count_name은 특정 통계값을 나타냅니다.

    1. count_name 가능한 값 ​​(a1,a2,a3,···,a12,b1,b2,b3,···,b12);


    2. 매일 수만 건의 기록이 생성됩니다.
    3. 한 번에 데이터베이스에서 검색할 수 있는 최대 레코드 수는 10,000개입니다.
    4. 이제 12개의 값을 세어야 합니다. mysql 문은 다음과 같이 표현할 수 있습니다.
    5. 이런 식으로 데이터베이스를 12번 가져오면 결과를 얻을 수 있지만 효율성은 높지 않습니다.
    6. 원하는 데이터를 한번에 불러올 수 있는 방법이 있나요? (상대적으로 데이터량이 많은 오래된 데이터베이스입니다. 데이터베이스 수정은 최종 고려사항입니다!)

      시도한 방법:

    페이징 통계의 경우 테이블에 기본 키가 없으므로 페이징 처리가 어렵습니다.
    <code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); 
    select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); 
    ···</code>

    데이터는 한 번에 가져오고 처리됩니다. MySQL은 한 번에 약 10,000개의 데이터만 가져올 수 있다는 제한으로 인해 더 이상 데이터가 붕괴될 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.