development

mysqldump에서 레코드 수를 제한하고 있습니까?

big-blog 2020. 6. 29. 07:29
반응형

mysqldump에서 레코드 수를 제한하고 있습니까?


큰 데이터베이스에서 작은 레코드 샘플을 테스트 데이터베이스로로드하려고합니다.

mysqldump에게 어떻게 8 백만 중에서 n 개의 레코드 만 제공하라고 말합니까?

감사


skaffman이 말했듯이 --where 옵션을 사용하십시오 .

mysqldump --opt --where="1 limit 1000000" database

물론, 그것은 당신에게 모든 테이블에서 첫 번째 백만 행을 줄 것입니다.


n특정 테이블에서 레코드 를 얻으려면 다음과 같이 할 수 있습니다.

mysqldump --opt --where="1 limit 1000000" database table > dump.sql

이것은 파일로 1000000명명 table테이블에서 첫 번째 행을 덤프 합니다 dump.sql.


mysqldump는 실행할 SQL 쿼리를받을 수 있으며, 여기에서 덤프에 대한 데이터를 가져옵니다. 그런 다음 쿼리에서 "limit X"절을 사용하여 행 수를 제한 할 수 있습니다.


기본 순서는 ASC이므로이 상황에서는 거의 필요하지 않으므로 DESC를 즉시 사용할 수 있도록 적절한 데이터베이스 디자인이 필요합니다. 모든 테이블에 동일한 이름 (자연 또는 대리)을 가진 하나의 기본 키 열이 있으면 다음을 사용하여 최신 레코드 n 개를 쉽게 덤프 할 수 있습니다.

mysqldump --opt --where="1 ORDER BY id DESC limit 1000000" --all-databases > dump.sql

이것이 연관 테이블에서도 항상 PK ID 의 이름을 지정 하고 복합 PK를 피해야 하는 완벽한 이유입니다 (대신 키를 대신 사용).

참고 URL : https://stackoverflow.com/questions/135835/limiting-the-number-of-records-from-mysqldump

반응형