본문 바로가기 메뉴 바로가기

kirinmanDevBlog

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

kirinmanDevBlog

검색하기 폼
  • 분류 전체보기 (115)
    • language (32)
      • java (15)
      • python (14)
      • c# (3)
    • db (9)
      • sql (8)
      • redis (1)
    • 알고리즘 문제 (12)
    • Learned! (29)
    • git (5)
    • spring (19)
    • diary (2)
    • web (4)
  • 방명록

db (9)
redis 기본 명령어

1. info redis 버전, 운영시스템, 접속된 사용자, 메모리, 복제 등 정보 확인 - info : 전체 - info memory : 메모리 - info stats : 통계정보 - info clients : client 정보 2. dbsize redis 서버내 존재하는 keys 수 return - dbsize 3. debug segment redis 서버 crash - debug segment 4. monitor redis에서 처리되는 명령어 실시간 확인 (redis 서버 성능에 심각한 저하 유발) - monitor 5. client list redis에서 접속되어 있는 client list 출력 - client list 6. client setname redis 접속되는 client 이름 변경 -..

db/redis 2023. 2. 28. 00:34
index?

인덱스는 백과사전의 목차. 저는 이렇게 이해했습니다. 우리가 원하는 특정 단어를 찾아볼 때, 첫 장부터 하나씩 찾아보는 것은 굉장히 비효율적입니다. 우리는 원하는 단어를 더욱 빠르게 찾기 위해서 사전의 목차를 확인하고 단어가 어디에 포함되어 있는지를 찾아, 바로 원하는 페이지로 이동할 것입니다. 전 이게 인덱스라고 이해했습니다. 좀 더 그럴듯하게 말하자면, 데이터 검색 속도를 향상시키기 위해 db에서 테이블의 특정 column(field)을 기준으로 잡고, 각 row(record)의 값을 가지고 있는 것을 복사하여 별도 생성한 것이라고도 할 수 있습니다. (출처: https://en.wikipedia.org/wiki/Database_index) 인덱스를 사용하면 데이터 검색 속도가 대폭 향상되지만, 인덱..

db/sql 2023. 2. 17. 22:10
index를 사용해 검색 쿼리를 개선시켜보기

토이프로젝트를 진행하면서 검색 기능을 개선시킬 필요가 생겼습니다. 천만건의 데이터 중 검색창에서 특정 상품을 검색하는 기능이 있는데, 그냥 like문을 통해서 쿼리를 날리니 너무 많은 시간이 소요되었습니다. (심지어 지금 DB는 rds 프리티어를 사용 중 ㅠ) 그래서 인덱싱이라는 방법을 통해 검색 기능을 개선시키고자 하였습니다. 일단 500만건의 데이터를 db에 넣어두고, 인덱싱 테스트를 진행했습니다. (인덱싱하는데 like문에서 와일드카드를 양쪽에? 라고 하실 수도 있지만, 관련내용을 저도 작성하다가 알게 되었네요. 따로 정리해 보겠습니다.) explain select COUNT(*) from products p WHERE name LIKE "%Sleek%" 먼저 EXPLAIN 키워드를 통해 사용하고자..

db/sql 2023. 2. 17. 21:36
인텔리제이에서 H2 database 연결

1. build.gradle에 다음과 같이 설정한다. (spring boot 프로젝트 생성할 때 dependencies 추가한 내용과 겹칠 수 있음) dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.pr..

db/sql 2022. 12. 23. 23:54
SQL 기본 문법 정리

쿼리란? 데이터베이스에 명령을 내리는 것 select 쿼리문 데이터베이스에서 데이터를 선택해서 가져오겠다는 것. select * from orders 이런 식으로 쓰인다. *은 필드 전체를 말하며, order 테이블의 전체 필드를 가져오라는 뜻. select created_at, course_title, payment_method, email from orders; order 테이블에서 created_at 과 같은 특정 필드들을 가져오라는 뜻. where절 where절은 쿼리문으로 가져올 데이터에 조건을 걸어주는 것. select * from orders where payment_method = "kakaopay"; orders 테이블에서 payment_method가 kakaopay인 것만 가져와줘! 카..

db/sql 2022. 10. 2. 20:58
221002

with 절을 활용한 아래와 같은 쿼리가 있다. with table1 as ( SELECT enrolled_id, COUNT(*) as total_cnt from enrolleds_detail ed group by enrolled_id ), table2 as( SELECT enrolled_id, COUNT(*) as done_cnt from enrolleds_detail ed WHERE done = 1 group by enrolled_id ) select a.enrolled_id, b.done_cnt, a.total_cnt, ROUND(b.done_cnt/a.total_cnt*100, 0) as per from table1 a INNER join table2 b on a.enrolled_id = b.en..

db/sql 2022. 10. 2. 20:11
220930

3주차 수업에서 두 가지의 테이블을 합쳐서 확인하는 방법을 배움. inner join은 A,B테이블의 교집합. 두 테이블에서 공통된 값을 가져오는 것 left join은 A 테이블과 A,B의 교집합 부분. 이 경우 NULL값이 생길 수 있음.

db/sql 2022. 9. 30. 17:50
220929

최솟값 구하기 select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명 group by 범주가 담긴 필드명; 최댓값 구하기 select 범주가 담긴 필드명, max(최댓값을 알고 싶은 필드명) from 테이블명 group by 범주가 담긴 필드명; 평균값 구하기 select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명 group by 범주가 담긴 필드명; 정렬하고 싶을 때 - order by ex) select * from checkins order by likes desc; desc를 붙이면 내림차순 안붙이면 오름차순

db/sql 2022. 9. 29. 15:48
220928

기본 show tables select * from 테이블 where ~~ = '필드' '같지 않음' 조건 걸어보기 '같지 않음' 조건은 != 로 걸 수 있습니다. select * from orders where course_title != "웹개발 종합반"; '범위' 조건 걸어보기 '범위' 조건은 between 으로 걸 수 있어요. select * from orders where created_at between "2020-07-13" and "2020-07-15"; '포함' 조건 걸어보기 '포함' 조건은 in 으로 걸 수 있어요. select * from checkins where week in (1, 3); '패턴' (문자열 규칙) 조건 걸어보기 '패턴' 조건은 like 으로 걸 수 있어요. whe..

db/sql 2022. 9. 28. 19:55
이전 1 다음
이전 다음
공지사항
  • Developer from Filmmaker!
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • Redisson
  • Redis
  • jmeter시나리오
  • CorrectnessAndTheLoopInvariant
  • CheckedException
  • Spring
  • 항해
  • 스프링faker
  • jmeter테스트
  • 동적크롤링
  • 인덱스
  • 프로그래머스
  • bankersRounding
  • hackerrank
  • 대규모더미데이터
  • Python
  • Java
  • jwt
  • Lock
  • 토큰
  • index
  • EC2
  • jmeter토큰
  • pessimisticlock
  • 부하테스트시나리오
  • jmeter세션
  • jmeter쿠키
  • jmeter부하테스트
  • 자바
  • jmeter로그인
more
«   2025/07   »
일 월 화 수 목 금 토
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
글 보관함
  • 분류 전체보기 (115)
    • language (32)
      • java (15)
      • python (14)
      • c# (3)
    • db (9)
      • sql (8)
      • redis (1)
    • 알고리즘 문제 (12)
    • Learned! (29)
    • git (5)
    • spring (19)
    • diary (2)
    • web (4)
  • 방명록
  • GitHub

Blog is powered by Tistory / Designed by Tistory

티스토리툴바