DB/MySQL
-
[MySQL] Stored ProcedureDB/MySQL 2024. 1. 22. 12:51
Stored Procedure - A set of SQL statements that are stored on the server and can be executed as a single unit - Precompiled and stored in the database, allowing for improved performance and code reusability Procedure Declaration - A stored procedure is defined using the 'CREATE PROCEURE' statement - Includes the procedure name, parameters(if any), and the body of the procedure /* Basic sysntax *..
-
[MySQL] Stored FunctionDB/MySQL 2024. 1. 21. 22:20
Stored Function - A set of SQL statements that perform a specific task and return a single value - Allow to encapsulate a series of SQL statements into a reusable and modular unit DELIMITER // -- change DELIMITER ";" to "//" temporarily CREATE FUNCTION calculate_area(length DOUBLE, width DOUBLE) RETURNS DOUBLE BEGIN DECLARE area DOUBLE; SET area = length * width; RETURN area; END // DELIMITER ; ..
-
[MySQL/Java] DB 쿼리 성능개선 (2) 랭킹 조회 속도 개선하기 (5s ➡️ 1s대로 줄이기!)DB/MySQL 2023. 6. 29. 21:59
기능 배경 - 개선 대상 : 랭킹 조회 기능 - 랭킹 조회 api 요청시 해당 게임의 Top3에 대한 정보를 DB에서 조회 ➡️ ① Top3 정보 중 하나가 요청자와 일치할 경우 그대로 정보를 담아 return ➡️ ② Top3 정보에 요청자가 없을 경우, 해당 사용자의 등수와 정보를 DB에서 재조회하여 담은 후 return 기존에 해당 기능을 수행하기 위해 작성한 QueryRepository의 코드는 아래와 같다. QueryDSL을 사용해서 작성했는데.. 아무래도 QueryDSL을 잘 알지 못한 상태에서 코드부터 적어서 부족한 부분이 많아 보인다..! 또, 프로젝트였기 때문에 데이터가 많을 경우를 고려하지 않고 아주 미니미한 목데이터 안에서만 테스트를 했기 때문에, 일단 쿼리로 데이터가 "날라만 오..
-
[MySQL/Java] DB 쿼리 성능개선 (1) test용 mock/bulk data 삽입 방법DB/MySQL 2023. 6. 26. 22:09
Gotcha 프로젝트 리팩토링을 하면서 DB 성능 개선에 도전해보고 싶다는 목표! 굉장히 조그마한 프로젝트였기 때문에 쿼리를 신경 쓰지 않고 작성했는데, 데이터가 몇십, 몇백만 단위로 쌓이게 된다면 문제가 발생할 수 있을 것 같다는 생각이 들었다. 그래서 쿼리 성능 테스트를 진행해보기로 했다. 하지만.. 대량 데이터를 넣는 것부터 배울게 아주 많군요...! 우선 테스트하고자 하는 코드를 간략화 하면 아래와 같았다. @CustomSpringBootTest @AutoConfigureMockMvc class ParticipantControllerTest { @Autowired EntityManager em; @Autowired MockMvc mockMvc; @Autowired ObjectMapper obje..