프로시저(mysql대용량 insert)
·
DB/mysql
프로시저 프로시저를 사용하여 500만개의 로우 쌓기 DELIMITER $$ DROP PROCEDURE IF EXISTS insertLoop$$ CREATE PROCEDURE insertLoop() BEGIN DECLARE i INT DEFAULT 1; WHILE i
[DBeaver] 생성된 테이블 복사를 위한 Create Query문 생성
·
DB
# 생성된 테이블 복사를 위한 Create Query문 생성 접속 연결된 DataBase의 테이블 목록에서 마우스 오른쪽 버튼을 클릭하여 SQL 생성 → DDL을 클릭하면 해당 테이블에 대한 Create문의 내용을 가지는 팝업창이 뜨게된다.
foreach 사용 예시
·
DB/mysql
1. 배열 예시 공통 배열 데이터 String[] userArray = {"1","2","3"} 1-1. 배열 파라미터를 Map을 통해 넘겼을 경우 DAO public List getAuthUserList(String[] userArray) { HashMap map = new HashMap(); map.put("userArray",userArray); return sqlSession.selectList("getAuthUserList", map); } user-Mapper.xml SELECT m.*,a.name FROM members AS m JOIN authority AS a ON m.authority = a.authority WHERE m.authority IN #{arr} ORDER BY m.auth..
master slave 연동 확인하기
·
DB/mysql
mysql -u root -p GRANT ALL privileges ON DB명.* TO 계정아이디@'%' IDENTIFIED BY '비밀번호'; 해당 디비의 트랜잭션 걸린 쿼리 확인하기 mysql > select * from information_schema.innodb_trx; master slave 연동 확인하기
PROCESSLIST kill
·
DB/mysql
mysql 레퍼런스를 보다보면 SHOW PROCESSLIST 에 대한것이 있는데 일명 디비 먹통이 났을 때 프로세스 리스트를 보고 대처를 해보자. 쿼리가 블럭이나 슬립이 되면, 그 뒤에 들어오는 쿼리가 반영안되고 동일하게 블락 상태로 멈추게 되는 현상이 자주 발생하는데 이 같은 경우는 레코드수가 많거나 쿼리가 무거울 경우로 볼 수 있다. 로쿼리를 분석해서 지연시간으로 쿼리를 분석할 필요가 있지만 그 전에 현재 구동중인 디비를 어떻든 정상상태로 만들어야 한다. 어떤 쿼리냐에 따라 대처가 달라질 수 있겠지만.. 테이블 스키마를 수정하던가 디비 유형이 바뀌던가의 경우에서 섣불리 리부팅을 하기엔 문제가 될 수 있고, 리스타트/리부팅 후 정상적으로 올라오더라도 대기상태의 쿼리가 다시 실행되므로 문제해결은 되지 않..
대용량csv을 Mysql에 import시키기
·
DB/mysql
컬럼 구조와 csv가 같을 경우 123.456.789.000 > LOAD DATA LOCAL INFILE [FILE_PATH]INTO TABLE [DB_NAME.TABLE_NAME] FIELDS TERMINATED BY ","; 예시 ex)>> LOAD DATA LOCAL INFILE "/Users/backyoungho/Documents/network.csv" INTO TABLE Dbname.geoip_ip_csv FIELDS TERMINATED BY ","; 2808 error 날 경우 //확인하기 SHOW VARIABLES LIKE 'local_inflie'; 값이 0이나 false 일 경우 SET GLOBAL local_infile = 1; # 또는 SET GLOBAL local_infile = t..