파워셀이용한 데이터 로드
0.데이터 사이즈 별로 목록 정리하기
/* 특정데이터베이스의 테이블 목록 */
SELECT
table_name,
table_rows,
round(data_length/(1024*1024),2) as 'DATA_SIZE(MB)',
round(index_length/(1024*1024),2) as 'INDEX_SIZE(MB)'
FROM information_schema.TABLES
where table_schema = 'database_name'
GROUP BY table_name
ORDER BY data_length DESC
;
/* 컬럼명 목록 가져오기 */
SELECT *
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'bf_change' and table_name='table_name';
/* 컬럼명 지정해서 데이터 가져오기 */
SELECT ..... from table_name
INTO OUTFILE 'table_name.csv'
CHARACTER SET uft8
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n';
1.power shell 에서 디비접속하기
C:\Program Files\MySQL\MySQL Server 5.5\bin>
mysql -h 127.0.0.1 -P 3306 -u root -p
#####
2. 데이터 다운로드 시 database change : use dbname
데이터 업로드 시 database change : use dbname
3,4 : 컬럼안의 데이터에 한글, 특수기호 등이 들어가 있는 경우 깨지지 않고 데이타를 이관 시킬 수 있다.
3.쿼리결과 csv파일로 저장하기 power shell 창에서 디비접속 후 : 컬럼명 목록 대로 csv 으로 내보내기
SELECT [col1],[col2],[col3],[col4] FROM database_name.table_name
INTO OUTFILE 'write_the_name_you_want.csv'
CHARACTER SET utf8
FIELDS TERMINATED BY '[특수문자]'
LINES TERMINATED BY '\n';
4.쿼리결과 csv파일로 업로드하기 power shell 창에서 디비접속 후 : 컬럼명 목록 대로 csv 로 가져오기
LOAD DATA LOCAL INFILE '/path/your_data.csv'
INTO TABLE database_name.table_name
CHARACTER SET utf8
FIELDS TERMINATED BY '[특수문자]'
LINES TERMINATED BY '\n'
(col1, col2, col3, ...)
>> 파워쉘에서 접속하기 <<
cd C:\#####\MySQL\MySQL Server 5.5\bin
C:\#####\MySQL Server 5.5\bin>
mysql -h 127.0.0.1 -P 3306 -u $$$$ -p
$$$$$
USE `###_backup`;
//데이터 올리기
source C:\Users\####\#####_backup_schema.sql
## 현재 사용자 확인 SELECT USER();
## 현재 데이터베이스 확인 SELECT DATABASE();
#### 1.데이터베이스에서 데이터 사이즈 별로 목록 정리하기
SELECT * FROM information_schema.tables WHERE table_schema = 'dbname';
SELECT
table_name,
table_rows,
round(data_length/(1024*1024),2) as 'DATA_SIZE(MB)',
round(index_length/(1024*1024),2) as 'INDEX_SIZE(MB)'
FROM information_schema.TABLES
where table_schema = 'dbname'
GROUP BY table_name
ORDER BY data_length DESC
#### 2.데이터베이스로 이동 후 컬럼명, 데이터건수 조회
//데이터베이스 이동
use database_name;
select * from database_name.table_name;
//컬럼명조회
SELECT *
FROM information_schema.columns
WHERE TABLE_SCHEMA = database_name and table_name=table_name;
//데이터 건수 조회
SELECT count(*)
FROM databasename.tablename
;
#### 3.파워쉘 창에서 디비접속 후 쿼리결과 csv파일로 저장하기
SELECT *
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'databasename ' and table_name='tablename';
select count(*) from databasename.tablename; /* ? */
SELECT
ID,board_id,post_id,section,related_id,list_number,depth,parent,type,date,guid,login_id,writer
from databasename.tablename;
SELECT
컬럼목록
from databasename.tablename
INTO OUTFILE '04.tablename.csv'
CHARACTER SET utf8
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n';
#### 4.파워쉘창에서 디비접속 후 쿼리결과 csv파일로 업로드하기
LOAD DATA LOCAL INFILE 'D:\\MySqlBackup\\databasename\\04.tablename.csv'
INTO TABLE newdatabasename.tablename
CHARACTER SET utf8
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
( 컬럼목록 )
;
SELECT count(*) from newdatabasename.tablename ;