일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- devops
- Spring Batch
- jsp
- jenkins
- Spring Boot
- Spring
- it
- db
- laravel
- AWS
- Git
- Web Server
- JVM
- elasticsearch
- IntelliJ
- redis
- 요리
- java
- tool
- 맛집
- springboot
- Gradle
- Design Patterns
- MySQL
- Oracle
- php
- linux
- javascript
- ubuntu
- ReactJS
- Today
- Total
목록mariadb (3)
아무거나
서로 연관이 있는 테이블의 row를 삭제하는 경우가 있는데, 아래의 예제 코드를 사용하면 단지 하나의 쿼리만으로 수행이 가능 예제 ) DELETE u, up, upc, ut, utp FROM users AS u LEFT JOIN users_photos AS up ON up.user_id = u.id LEFT JOIN users_photos_comments AS upc ON upc.photo_id = up.id LEFT JOIN users_topics AS ut ON ut.user_id = u.id LEFT JOIN users_topic_posts AS utp ON utp.topic_id = ut.id WHERE u.id = 12
Mysql에서 DB에 Multi Values를 통하여 여러 row를 한 번에 insert 하는 방식을 사용하였다. (Mysql에서는 Bulk Insert라고도 불린다) * Bulk Insert : 3개의 row가 기본적으로 하나의 transaction에서 처리가 된다. 즉, 3개 중 하나라도 필수값을 지키지 않는다거나 하는 경우 모두 rollback이 됨을 의미한다. 그러나 애플리케이션에서 다량의 Values를 생성하여 DB로 질의를 전달할때 DB측에서 받아들일 수 있는 Packet 제한이 있어에러가 발생한다. [error example]### Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (30321018 > 167..
작업을 하는 도중에 카테고리 코드를 조회하는 쿼리가 있었다. 성능 이슈로 인하여 해당 코드의 collation은 latin이였고 관리자 시스템쪽에는 전체필터를 주었을때 해당 코드컬럼에 대한 필터도 거치므로 한글조회를 할 시 오류가 검출되었다. 그래서 쿼리에서 직접 convert하여 조회하는 부분으로 수정하였다. [ex] As-is OR master_code = #{param.allSearch} To-be OR master_code = CONVERT(#{param.allSearch} USING utf8) 위와 같이 Converting하여 조회를 하면 된다.