본문 바로가기

Dev/MySQL

OUTFILE, LOAD DATA 쿼리문으로 조건을 준 결과값 데이터를 파일로 저장하는 방식 SELECT * INTO OUTFILE '파일경로 파일이름' FROM 테이블 WHERE 조건;* MySQL 다른 특정 경로가 없다면 데이터베이스 data 디렉토리 파일경로로 간주함 LOAD DATA INFILE '파일경로 파일이름' INTO TABLE 테이블명;* 경로를 꼭 써주거나 경로를 안써준다면 해당 데이터베이스 디렉토리에 파일이 위치해 있어야한다. * 여러가지 옵션이 있다. 출처: http://blog.daum.net/kimuks/7533906 더보기
테이블이나 데이터베이스 파일로 백업/복구하기 1. mysql 에 접속한다. mysql -u유저 -p패스워드 2. 백업할때 select * from DB명.테이블명 into outfile '만들 파일명.확장자' fields terminated by '구분자'; DB명만 적으면 DB전체를 csv로 백업한다. 콤마를 찍어서 특정 테이블만 백업할 수 있다. 경로를 지정안하면 만들어진 csv는 mysql/data/폴더에 있다. 3. 복구할때 load data infile '/경로/파일명' into table '테이블명' fields terminated by ','; * 유의사항쿼리를 실행하는 USER 의 File_Priv 권한이 'Y' 이어야 한다. update user set File_Priv = 'Y' where User = '{유저이름}' ; 으로 바.. 더보기
user 권한 리스트 http://mysqldba.tistory.com/30http://blog.daum.net/kimuks/7532350나중에 정리. 더보기
조인(Join) 출처: http://pelican7.egloos.com/2584398 더보기
쿼리튜닝 : EXPLAIN explain select id from account where id='admin'; EXPLAIN 을 사용함으로써 인덱스가 적절히 사용되고 있는지 검토할 수 있다. * ID id는 실행계획의 순서를 나타낸 것이다. * SELECT_TYPE select 수행시의 select type을 표현하는 정보이다. 여러가지가 존재하며 이 중 하나의 값으로 정해진다. SIMPLE - 단순 select, union이나 subquery를 사용하지 않는다. PRIMARY - 가장 바깥쪽의 select UNION - union에서 두번째 혹은 이후의 select DEPENDENT UNION - union에서 두번째 혹은 이후의 select, outer 쿼리에 의존적 UNION RESULT - union의 결과 SUBQUE.. 더보기
union으로 출력한 내용에 함수 사용하기 mysql> (select total from stats_1.2013_04) -> union -> (select total from stats_2.2013_04); +---------+ | total | +---------+ | 1856818 | | 45 | +---------+ 2 rows in set (0.02 sec) mysql> select sum(total) -> from ( -> select total from stats_1.2013_04 -> union -> select total from stats_2.2013_04 -> )as x; +------------+ | sum(total) | +------------+ | 1856863 | +------------+ 1 row in set (0... 더보기
MySQL Federated : 다른 서버 DB의 테이블 조인하기 Federated는 물리적으로 떨어져있는 다른 서버 DB의 테이블을 로컬로 가져와서 사용하는 기능을 말한다.삽입/삭제/수정/조회/조인 등의 기능 사용 가능하다. =============[ 로컬 서버에서 설정 ]=============1. my.ini 파일 수정[mysqld] 하단에 federated 라는 단어를 써준다. 2. mysql 재시작 3. 엔진 가동여부 확인mysql>show engines; -> FEDERATED YES 확인 4. 다른 서버에서 가져올 테이블 생성 // 가져올 테이블과 똑같이 구성한다.CREATE TABLE table_name( id INT AUTO_INCREMENT PRIMARY KEY, col1 VARCHAR(100) DEFAULT NULL, col2 VARCHAR(200).. 더보기
Mysql Replication 개념 1. Mysql Replication 가장 많이 사용하는 방법으로 2대 이상의 Mysql 서버만 있으면 별도의 패키지나 장비없이 구축이 가능합니다. Mysql Replication은 1대의 Master 서버와 1대 또는 여러대의 slave 서버로 구성되며, Master 서버에 데이터가 기록되면 Slaver 서버가 Master 서버의 로그를 읽어서 데이터를 업데이트 하는 방식입니다. 이 경우 Master 서버에만 데이터를 기록하고 나머지 Slaver 서버들은 Master 서버를 통해서 데이터가 업데이트 되기 때문에 읽기만 가능합니다. Master 서버에 장애 발생 시 3대의 Slaver 서버들 가운데 1대가 데이터를 넘겨받은 후 서비스에 투입되어 바로 복구가 이뤄집니다. 또한 데이터를 읽고 쓰는데 Mast.. 더보기
MySQL Replication 설정 Master (Windows7 Home 64bit, MySQL ver 5.5.29)Slave (WindowsXP Home 32bit, MySQL ver 5.5.29) 에서 테스트. Master와 Slave는 버전이 같아야 한다.같지 않다면 Read만 하는 Slave가 버전이 높아야 한다. (버전이 높을수록 기능이 더 많기 때문에) [ Master - Slave 설정 ]: Master에서만 트랜잭션이 가능하고 Master의 변경사항이 Slave로 단방향 동기화 구조 ====================================================================================================[Master 설정] 1. my.ini 설정[mysqld]serv.. 더보기
Blob Type 1. BLOB의 경우 2^16 (64KB), MEDIUMBLOB은 2^24 (16MB),그리고, LONGBLOB은 2^32 (4GB)까지 입력이 된다고 한다. 출처: http://blog.daum.net/shoebox/6023323 2. BLOB에 이미지 넣기 1. 테이블 생성 CREATE TABLE `blob_test` ( `img_no` int(10) unsigned NOT NULL auto_increment, `file_name` varchar(100) NOT NULL, `thumb` blob NOT NULL, PRIMARY KEY (`img_no`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; 2. 저장하는 PHP 프로그램insert.php 더보기