MySQL 에서 insert 쿼리 수행시 Key 중복이 있는 경우 해당 row를 업데이트 하기 위해서 insert ~ on duplicate key update ~ 를 사용한다. 문법 INSERT INTO tb_temp (a, b, c) VALUES(1, 2, 3) ON DUPLICATE KEY UPDATE c = c + 1 tb_temp 테이블에 PK(unique index)가 a 라고 했을 때를 가정하자. 위 SQL은 a=1 인 row 가 이미 존재한다면 c 컬럼을 갱신한다는 의미이다. 예를 들어 위 SQL을 두 번 수행하면? c는 4가 된다. 그럼 Bulk insert 에서의 duplicate key update 쿼리는 어떻게 작성이 될까? 두 개의 insert 구문이 있다고 가정하자. INSERT..
대량으로 insert를 수행하다 보면 성능을 고려하게 된다. MySQL에서는 multi row을 어떻게 빠르게 insert 할 수 있을까? One Transaction 처리 Insert ~ Select Bulk Insert LOAD DATA INFILE 구글링을 해 보니 4가지로 요약되는 것 같다. One Transaction 처리 start transaction; insert into tb_name (a, b, c) values (1, 2, 3); insert into tb_name (a, b, c) values (1, 2, 3); insert into tb_name (a, b, c) values (1, 2, 3); commit transaction; 하나의 트랜젝션으로 묶어서 처리하는 방식이다. SQ..
본 글은 http://programmergate.com/use-exceptions-effectively/ 를 번역 & 요약한 글입니다. Exception에 대한 글은 수도 없이 많다. 본 블로그 글을 읽어보면서도 책에 나온 교과서 적인 이야기를 하고 있다고 느꼈다. 그 이유는 Exception이라는 것은 처리에 왕도(Royal Way)가 없기 때문이다. 그럼에도 Exception에 대한 글이 의미가 있는 것은 Exception 처리는 프로그래밍에서 없어서는 안 될 중요한 요소 중 하나이기 때문이다. “How to use exceptions effectively?” 에서 언급하고 있는 내용은 기본적이고 간단한 내용들이다. 하지만 잘 지키고 적용하기는 쉽지 않을 수 있다. 자바에서 Exception은 che..
아래와 같은 질문을 받았다. String msg = “Hello”; String msg = new String(“Hello”); 위 두 가지 코드 중 어떤 방식이 더 나은 방식일까? 같을까? 다를까? 몇 가지 케이스를 아래와 같이 테스트 해 보았다. public class StringTest { @Test public void String_Object_Test() { String msg1 = "Hello"; String msg2 = "Hello"; String msg3 = new String("Hello"); String msg4 = new String("Hello"); String msg5 = new String("Hello").intern(); System.out.println(msg1 == msg2..
- Total
- Today
- Yesterday
- Learning Spark
- spring
- Django
- flume
- Oracle
- Hdfs
- linux
- mongodb
- jackson
- 데이터 리터러시
- Git
- 데이터과학자
- PYTHON
- 확률분포
- Sqoop
- jenkins2.0
- HADOOP
- exception
- 태그를 입력해 주세요.
- java
- mongo
- mysql
- json
- jenkins
- bigdata
- Apache Spark
- 알고리즘
- db
- spark
- 책요약
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |