Backend/DataBase
-
[DataBase] JPA에서 인덱스 사용하기 (Mysql)Backend/DataBase 2022. 7. 7. 02:47
이번 포스팅에서는 인덱스 사용하는 방법에 대해 정리해보려고 한다. 인덱스( Index )란? 인덱스는 조회(Query)에 대한 성능을 향상시키기 위한 자료구조이다. 대부분 사람들이 설명하길 책 앞에 목차를 두는 것으로 설명한다. + 중복되는 값이 적은 컬럼일수록(카디널리티 값이 높을수록) 좋은 성능을 발휘할 수 있고, 데이터를 변경하는 것에 있어서는 성능을 저하시킬 수 있다. Mysql에서의 인덱스는 B-tree 알고리즘으로 되어있다. B-tree 알고리즘으로 된 인덱스가 동작하는 방식은 밑의 이동욱님의 블로그를 참고하기 바란다. https://jojoldu.tistory.com/243 [mysql] 인덱스 정리 및 팁 MySQL 인덱스에 관해 정리를 하였습니다. MySQL을 잘 알아서 정리를 한것이 아..
-
[DataBase] 커넥션 풀(Connection Pool)을 사용하는 이유Backend/DataBase 2022. 6. 17. 01:21
커넥션 풀(Connection Pool)이란 무엇이고, 사용하는 이유는 무엇인지 알아보자. 우선 커넥션(Connection)을 알아봐야한다. 커넥션(Connection)이란 DB Connection을 의미하는데, 데이터베이스를 사용하기위한 연결을 의미한다. 그런데 이 커넥션을 획득해오는 것이 조금 복잡한데, 쉽게 설명하면 DB에 접속해서 아이디와 패스워드를 통해 인증하여 DB가 사용가능한 상태가 커넥션을 얻어오는 것이라고 생각하면 되겠다. 바로 위에서 커넥션을 획득하는 것은 복잡한 일이라고 했다. 그런데 추상화된 JdbcTemplate이나 JPA가 아닌 순수 JDBC를 통해 DB 접근하는 코드를 작성해 본 적이 있다면 어떤 작업을 할 때마다 직접 커넥션을 생성하고 획득한 후 SQL을 날릴 수 있다는 것을..