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에서 테이블의 특정 column(field)을 기준으로 잡고, 각 row(record)의 값을 가지고 있는 것을 복사하여 별도 생성한 것이라고도 할 수 있습니다. (출처: https://en.wikipedia.org/wiki/Database_index) 인덱스를 사용하면 데이터 검색 속도가 대폭 향상되지만, 인덱..
토이프로젝트를 진행하면서 검색 기능을 개선시킬 필요가 생겼습니다. 천만건의 데이터 중 검색창에서 특정 상품을 검색하는 기능이 있는데, 그냥 like문을 통해서 쿼리를 날리니 너무 많은 시간이 소요되었습니다. (심지어 지금 DB는 rds 프리티어를 사용 중 ㅠ) 그래서 인덱싱이라는 방법을 통해 검색 기능을 개선시키고자 하였습니다. 일단 500만건의 데이터를 db에 넣어두고, 인덱싱 테스트를 진행했습니다. (인덱싱하는데 like문에서 와일드카드를 양쪽에? 라고 하실 수도 있지만, 관련내용을 저도 작성하다가 알게 되었네요. 따로 정리해 보겠습니다.) explain select COUNT(*) from products p WHERE name LIKE "%Sleek%" 먼저 EXPLAIN 키워드를 통해 사용하고자..
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..
쿼리란? 데이터베이스에 명령을 내리는 것 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인 것만 가져와줘! 카..
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..
최솟값 구하기 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를 붙이면 내림차순 안붙이면 오름차순
기본 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..
- Total
- Today
- Yesterday
- 토큰
- jwt
- jmeter시나리오
- jmeter쿠키
- hackerrank
- jmeter세션
- pessimisticlock
- 부하테스트시나리오
- bankersRounding
- Redis
- index
- Java
- CorrectnessAndTheLoopInvariant
- Spring
- 대규모더미데이터
- jmeter로그인
- 인덱스
- CheckedException
- jmeter토큰
- 동적크롤링
- Python
- 스프링faker
- jmeter테스트
- jmeter부하테스트
- EC2
- Lock
- 항해
- 자바
- 프로그래머스
- Redisson
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |