데이터베이스4 Offset과 Limit OFFSET과 LIMIT은 SQL 쿼리에서 페이징(paging)을 구현할 때 자주 사용하는 문법이다. 하지만 이들이 성능에 미치는 영향에 대해 이해하는 것이 중요하다. 다음은 OFFSET과 LIMIT을 사용했을 때 성능에 미칠 수 있는 영향이다.1. 큰 OFFSET 값의 성능 문제OFFSET은 결과 집합의 처음부터 지정된 수만큼의 행을 건너뛰기 위해 사용된다. 그러나 이 작업은 단순히 건너뛰는 것처럼 보이지만, 실제로는 데이터베이스가 OFFSET 이전의 모든 행을 여전히 읽어야 한다. 이 때문에 OFFSET 값이 클수록 성능이 저하될 수 있다.예를 들어, 다음과 같은 쿼리가 있다고 가정해보자SELECT id, data_value FROM tb_n_machine1 ORDER BY id OFFSET 1000.. 2024. 7. 22. JPA 인덱스 걸기 참고로 findAllById 같은 경우에는 id는 pk라서 색인이 되있어서 성능상 문제가 없지만 findAllByPost, findAllByUser 같은 경우에는 인덱싱이 걸려있지 않아서 인덱스를 걸어줘야한다. 인덱싱을 걸지 않으면 일일이 테이블을 스캔하면서 post나 user를 찾아야하는데 인덱싱을 걸면 인덱스 한것만 찾으면 된다. 다음과 같이 인덱싱을 한다. @Entity @Table(name = "\"comment\"", indexes = { @Index(name = "post_id_idx", columnList = "post_id") // name : 인덱스 이름, columnList : 인덱스를 어떤 컬럼에 걸건지 }) @Getter @Setter @SQLDelete(sql = "UPDATE \.. 2022. 9. 26. 스프링 부트 application.yml 에서 h2 사용 시 LocolDate -> LocalDateTime으로 변경 했는데 적용 안됨 문제 해결 Timestamped 클래스에 있는 createAt이 LocalDate 타임으로 되어 있어서 날짜만 표시되고 시간이 표시가 안됐다 그래서 LocalDate 에서 LocalDateTime으로 변경했는데 h2 db에 데이터를 지우고 계속 등록해도 LocalDate 으로 반영이 됐다. 이유는 spring: mvc: pathmatch: matching-strategy: ant_path_matcher datasource: #url: jdbc:h2:mem:testdb url: jdbc:h2:./myselectdb;AUTO_SERVER=TRUE driver-class-name: org.h2.Driver username: sa password: h2: console: enabled: true settings: web-.. 2022. 5. 28. MySQL 5.7.25 version 실행 안됨 오류 mysql -u root -p password:******* 입력후 비밀번호 확실히 맞았는데도 에러날 경우 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) -> 'localhost'(10061). 즉, 로컬에서 MySQL서버에 연결(접속)할 수 없음. 제어판 - 시스템 및 보안 - 관리도구 - 서비스로 들어가서 MySQL이 존재 하는지 확인한다. 만약 존재할 경우 다시 시작하면된다. 만약 존재하지 않을 경우 관리자 권한으로 cmd창을 열고 실행하고자 하는 MySQL의 bin폴더 경로로 가서 ex) cd C:\Users\Teak\mysql-5.7.25-winx64\mysql-5.7.25-winx64\bin mysqld --i.. 2020. 4. 17. 이전 1 다음