분석 쿼리 한 줄 때문에 운영 DB CPU가 천장을 치는 경험, 다들 한 번씩 있을 거다.우리도 있었다. 그리고 그 원인이 의외로 단순했다. 시간대 변환.UTC로 저장된 데이터를 KST 기준으로 집계하려고 했을 뿐인데, 그게 인덱스를 완전히 무력화했다. 풀스캔이 일어났고, 분석 쿼리 한 번에 운영 DB가 흔들렸다. 이번 글은 이걸 어떻게 풀었는지에 대한 정리.발단: UTC 저장, KST 집계우리 운영 DB는 모든 timestamp를 UTC로 저장한다. 글로벌 서비스를 고려해 일관된 시간대를 쓰는 건 표준이고, 우리도 그렇게 하고 있었다.근데 분석 요구사항은 KST 기준이다. "5월 5일 KST 하루치 메시지 수 집계해줘" 같은 요청.처음엔 단순하게 풀었다.SELECT COUNT(*) FROM messag..
date 타입으로 저장된 컬럼을 Select 해올때 between과 대소 비교 연산자 성능의 차이에 대해 테스트 해보려고 한다. 일단 더미데이터 테이블의 DDL은 다음과 같다. create table test_datetime ( id bigint unsigned auto_increment primary key, isTest tinyint default 0 not null, createdAt datetime(6) default CURRENT_TIMESTAMP(6) not null, updatedAt datetime(6) default CURRENT_TIMESTAMP(6) not null on update CURRENT_TIMESTAMP(6), deletedAt datetime(6) null ); creat..
여러가지 DataBase를 만들다보면 계정별로 권한을 따로 줘야할 일이 많은데 자주 사용하는 계정 관련 SQL 정리 입니다. mysql 사용 show databases -- 생성된 데이터베이스 목록 보기 use mysql -- 계정, DB, 각종 config 설정은 mysql 데이터 베이스를 사용해야함 계정 조회 select host,user,password from user -- 계정 조회 계정 생성 create user test_user@'localhost' identified by 'insertPassWord'; -- localhost 에서만 계정 접근 허용 create user test_user@'%' identified by 'insertPassWord'; -- 모든IP 의 계정 접근 허용 cr..
사용자의 정보를 DB에 그대로 저장하지 않고 난독화 또는 암호화 하여 변환하여 저장하는 방법 데이터를 암호화하는방법에는 여러가지 방법이 있지만, 제일 간단하게 SQL 쿼리를 통해 암호화(난독화) 및 복호화 하는 쿼리이다. //ENCRYPT insert tempTable (usernm) values ( HEX(AES_ENCRYPT(usernm, SHA2('암호화 할때 사용할 key', 256))) ) //DECRYPT SELECT CONVERT(AES_DECRYPT(UNHEX(usernm), SHA2('암호화 할때 사용할 key',256)) USING UTF8) 복호화 FROM tempTable 들어온 문자열 + key값을 이용하여 암호화 하는것이기때문에 rainbow table이 존재한다. 민감하지 않은..
- Total
- Today
- Yesterday
- LLM동적호출
- LLM비용오차
- Haiku4096토큰
- SlidingWindowTTL
- 일경계처리
- AnthropicCaching
- 데이터엔지니어링
- 트레일링스탑버그
- jdbc
- Telegram알림
- 수수료슬리피지
- 비용80%절감
- CryptoBot
- 일일주간월간스케줄러
- Kafka
- 한달운영진단
- LLM파라미터머지
- 코인별전략배정
- 5중검증
- 메이저화이트리스트
- CDC
- kafka connect
- BOJ #JS
- 데모모드
- LLM비활성결정
- 코드자체감사
- 코인별손익분석
- DataFramebool
- Page_DownPage_DownPage_Down
- P0P4우선순위
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |