2017-11-17 5 views
2

의 내가 실행한다고 가정 해 봅시다 :MySQL의 SELECT 문 속도 만 데이터 파일없이 텍스트 파일로 복사하는 간단한 CLI 명령이 있습니까?

CREATE TABLE t1 AS 
SELECT ssn, title 
FROM employees 
WHERE title = "Dictator" 

을 나는 자동으로 텍스트 파일로 저장하려면 :

Query OK, 1118933 rows affected (3.84 sec) 
Records: 1118933 Duplicates: 0 Warnings: 0 

보너스 포인트 당신은 또한 위의 쿼리를 저장할 수 있다면 :)!

CREATE TABLE t1 AS 
SELECT ssn, title 
FROM employees 
WHERE title = "Dictator" 

Query OK, 1118933 rows affected (3.84 sec) 
Records: 1118933 Duplicates: 0 Warnings: 0 
+1

사용 된 운영 체제는 무엇입니까 /out.txt? –

+0

좋은 지적! 이 경우 MacOS. 그러나, 나는 또한 다른 시스템을 알고 싶어 할지도 모른다. 지역 사회에 도움이 될 수 있습니다. – Floam

답변

2

당신은 mysql 클라이언트에 tee 내장 명령을 사용할 수 있습니다.

나는 맥 OS에서이 테스트 :

mysql> tee out 
Logging to file 'out' 

mysql> create table test.mytable as select sleep(2); 
Query OK, 1 row affected (2.09 sec) 
Records: 1 Duplicates: 0 Warnings: 0 

mysql> exit; 
Bye 

$ cat out 
mysql> create table test.mytable as select sleep(2); 
Query OK, 1 row affected (2.09 sec) 
Records: 1 Duplicates: 0 Warnings: 0 

mysql> 
+0

이것은 쿼리 성능에 영향을 줍니까? – Floam

+0

내가 뭘 찾고 있었는지! 감사! – Floam

1

을이 경우 맥 OS에서. 그러나 나는 또한 다른 시스템을 알고 싶다. 지역 사회에 도움이 될 수 있습니다.

tee 명령은 Windows에서도 작동합니다.
은 전체 경로를 사용할 필요가 참고 파일은 C를

mysql> tee C:/out.txt 
Logging to file 'C:/out.txt' 
mysql> select * from stackoverflow.newtable; 
+---------+---------+---------+ 
| Column1 | Column2 | Column3 | 
+---------+---------+---------+ 
| Data1 | Data3 | Data5 | 
| Data2 | Data4 | Data6 | 
| 1  | 2  | NULL | 
| 1  | 2  | NULL | 
| 2  | 1  | NULL | 
+---------+---------+---------+ 
5 rows in set (0.00 sec) 

내용을 작성해야합니다 :

mysql> select * from stackoverflow.newtable; 
+---------+---------+---------+ 
| Column1 | Column2 | Column3 | 
+---------+---------+---------+ 
| Data1 | Data3 | Data5 | 
| Data2 | Data4 | Data6 | 
| 1  | 2  | NULL | 
| 1  | 2  | NULL | 
| 2  | 1  | NULL | 
+---------+---------+---------+ 
5 rows in set (0.00 sec)