2014-03-05 2 views
0

나는 100k 이상의 행을 가지고 있기 때문에 꽤 큰 mysql 테이블을 가지고 있으며 Excel로 내보내기를 원한다. 그러나, 나는 phpMyAdmin에서 기능을 Excel로 내보내기를 시도했지만 Excel 파일을 덤프하는 데 영원히 걸립니다. 덤핑조차하지 않습니다. 오류는 항상 "연결이 재설정되었습니다."입니다. 이 작업을 수행하는 방법에 대한 대체 방법이 있습니까 ??mysql 데이터베이스에서 테이블을 내보내는 방법은 무엇입니까?

+1

어느 쪽 OfficeOpenXML 포맷 .XLSX 파일 또는 2 개 워크 시트가 필요합니다 100,000 행 xls 파일은 워크 시트 당 최대 65,536 개의 행을 가질 수 있기 때문에 BIFF 형식의 .xls 파일 –

+0

PHP로 모든 행을 읽고이를 Excel 파일로 내보내는 데 사용하는 방법 https://github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/개요/01-G etting-Started.md – jycr753

+0

CSV 파일에 덤프합니다. –

답변

5

첫째, Excel의 100,000 행은 끔찍한 생각처럼 들리지만 당연히 시간이 좀 걸릴 것입니다. 이것은 잠시 열리는 것입니다. 이 시험을 수행해야하는 경우 : Excel에서 열립니다 /tmp/orders.csv :

SELECT order_id,product_name,qty 
FROM orders 
INTO OUTFILE '/tmp/orders.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

이것은 당신에게라는 파일을 제공해야합니다.

0

내보내기 속도가 느린 이유는 phpmyadmin이 실행되는 서버 때문일 수 있습니다. 놀라운 속도로 수백만 행을 정기적으로 내보내겠습니다.

데이터베이스 서버의 파일 시스템에 액세스 할 수있는 경우 Excel로 열 수있는 .csv로 변환하는 매우 빠른 방법입니다.

SELECT order_id,product_name,qty 
FROM orders 
INTO OUTFILE '/tmp/orders.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

이를 참조하십시오 http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/

0

이 작업을 수행하기 전에이 OUTFILE 방법을 사용했습니다 :

SELECT 
    'First Name', 
    'Last Name', 
    'Email Address' 
UNION 
SELECT 
    First_Name, 
    Last_Name, 
    Email 
INTO OUTFILE 
    '/tmp/data_2012-05-03.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
FROM 
    `data` 
WHERE 
    Reg_Date >= '2012-05-02 00:00:00' AND 
    Reg_Date <= '2012-05-02 23:59:59' AND 
    Email_Status = 1; 
+0

안녕하세요. 이 코드를 어디에서 실행했는지 알 수 있습니까? – user3310979

+0

죄송합니다, 무슨 뜻인지 모르겠습니다. – Quixrick

관련 문제