SQL을 작성하다 보면 현재 시간이 필요할 때가 있다. 이 때 활용할 수 있는 함수가 MySQL 에는 두 가지가 있다. sysdate()now() 어떤 차이가 있을까? 둘 다 현재 날짜 값을 가져오는 기능을 한다. 다만 현재라는 기준이 다소 다를 뿐이다. 아래 예시를 참고해 보자. (본 예시는 MySQL 공식문서에서 가져온 내용이다.) 두 번째 예제를 보면 sysdate() 사이에 차이가 있음을 확인할 수 있다. 정리를 해 보면 아래와 같이 정리할 수 있다. sysdate() : 함수 호출 시간now() : 쿼리 수행 시간 그렇다면 하나의 쿼리에서 여러 번의 현재 날짜를 저장해야 하는 컬럼이 있다면 now() 를 사용하는 것이 맞다. 하지만 개발된 코드를 보면 그냥 기준 없이 사용되는 경우가 있을 것이다..
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..
MySQL에서 select 쿼리 수행시 신기(?)한 부분을 발견해서 정리해 본다. 들어가며... (Ver. 5.6) MySQL에서 테이블명 또는 컬럼명에서는 대소문자를 구별한다는 것은 잘 알려진 사실이다. 그 이유는 테이블 또는 컬럼명이 파일로 관리되기 때문인데, 윈도우에서는 이슈가 없으나 Unix 계열에서는 대소문자 구분이 필요하기 때문이다. 그렇다면 문자열 컬럼(VARCHAR, CHAR, TEXT 등)에 저장된 내용은 어떻게 될까? 문자열 컬럼에서 대소문자 처리 아래와 같이 id, name 컬럼을 가진 user 테이블이 있다고 가정하자. CREATE TABLE `user` ( `id` varchar(20)DEFAULT NULL, `name` varchar(100) DEFAULT NULL, PRIMAR..
- Total
- Today
- Yesterday
- CI
- java
- spring
- 통계학
- mongo
- HADOOP
- spark
- 책요약
- json
- db
- flume
- 알고리즘
- exception
- Git
- mysql
- Hdfs
- linux
- mongodb
- jenkins2.0
- Oracle
- 태그를 입력해 주세요.
- jackson
- 확률분포
- Learning Spark
- Sqoop
- Django
- jenkins
- PYTHON
- bigdata
- Apache 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 |