2012-08-06 3 views
0

mysql 데이터베이스 (수 백만 행)에 매우 큰 테이블이 있습니다. 각 행에는 필드로 만든 날짜가 있습니다. 오늘까지 2011 년부터 행을 추출하고 싶습니다. 나는 모양이 같은 것을 사용하고 쿼리 :mysql 쿼리 브라우저에 메모리가 부족합니다.

select data1, data1, data3, data4, data5, data6 
    from db.table 
where date(data3) between '2011-10-01' and '2012-08-06' 

나는 브라우저 충돌하기 전에 MySQL의 쿼리 브라우저에서 가져온 약 3 백만 행에 도착하고 난 입심이 오류를 (gmem.c를 얻을 : (173) 50080000를 할당하는 데 실패 바이트를 중단합니다.)

메모리가 충분하지 않기 때문에 간단합니까? 누구나 제안 할 수있는 트릭이나 성능 향상 쿼리가 있습니까?

+0

첫째 :

다음은 올바른 질문이다. 일반적으로 검색된 행 수를 최대한 줄이십시오. 무엇보다 먼저 기억이 부족하다는 문제는 없지만 기본적으로 검색해야 할 것이 무엇인지에 대한 기본적인 생각이 부족하므로 기본적으로 원하는 것을 생각하고 더 신중하게 원하는 방식을 생각해야합니다. –

답변

0

사용중인 쿼리 브라우저가 수백만 행의 결과 집합 전체를 RAM으로 가져 오는 것으로 보입니다. 어떤 이유로 든 일 필요가 있다면 더 많은 RAM이 필요합니다.

질문은 다음과 같습니다.이 결과 집합으로 무엇을하고 있습니까? 파일에 저장 하시겠습니까? 그렇다면, MySQL 브라우저 기능을 사용하십시오. 전체 결과 세트를 RAM에 다운로드하는 것만큼이나 많은 메모리가 필요하지 않습니다.

: MySQL 쿼리 브라우저가 MySQL/Oracle에 의해 폐기됩니다. CSV (Excel) 파일로 행을 추출하는 다른 프로그램을 찾아야합니다. XLS 파일을 만드는 도구도 있습니다. 당신이 3m 레코드가 MySQL의 브라우저에서 검색 할 싶지 않는 모든

How to output MySQL query results in CSV format?

+0

예, 후속 조치가 필요합니다. 결과를 Excel 파일로 내보내고 싶습니다. "MySQL 브라우저 기능 사용법"을 알려주십시오. – user1563414

관련 문제