회사 프로젝트에 있는 쿼리인데
테이블은 대충
A:B = N:1
B:C = M:1
A:D = K:1
하나의 쿼리에서 A B C D 테이블에 대한 조건절이 다들어가있음
예를 들어
아오 쓰다보니까 좆같네 쓰다말음
이거 테이블 설계부터 씹창나있는 경우가 많지?
아님 이런 경우가 흔한게 정상인가?
B2B 라 고객사에서 별 시덥잖은 요구사항이 자꾸 들어와서 어쩔 수 없이 땜질하고 있어서 그런건지
쿼리 쓸때마다 열뻗쳐서 모니터 부셔버리고 싶은데
싹다 갈고 새 구조로 마이그레이션 할 상황이 안됨
참고로 검색엔진 운용할 상황이 안됨
아 그래? 극대노해서 욕박느라 댓글을 늦게 봤다 그럼 설계 문제는 아니고 요구사항을 거절하지 못한 개발자 문제네
ㅋㅋ댓글 안썼으면 한대 맞았겠노
WHERE절을 저렇게 짬통으로 쓰면 설계가 잘되어 있어도 인덱스 제대로 못탐... 이건 요구사항이 문제인거야 - dc App
그치? 사실 테이블도 일부분 말고는 학부때 배웠던 정규화 이론에서 크게 벗어나는것도 없음
DML도 챗지피티 처럼 데이터를 조회하는 프롬프트라고 생각하면 되는데 챗지피티한테 개짬통에 맥락안이어지고 이상하게 질문하는거랑 똑같은 상황임 - dc App
*챗지피티 사용하는것 처럼 프롬프트인데 데이터를 조작하는 프롬프트 - dc App
근데 WHERE 첫번째 조건에서 B 테이블 PK 로 한번 걸러서 그런지 막 3초 넘고 그러진 않음 (실행계획 이해가 부족하여 모자라 보이는 의견일 수 있음)
데이터 범위가 단건에서 끽해야 목록 조회 요구사항 으로 보이는데 저정도는 진짜 아무리늦어도 200ms 아래로 끊는게 바람직하다 - dc App
일부 varchar 컬럼에 비트리 인덱스가 걸려잇긴 한데 like 검색할때 검색어 앞부분에 % 가 오면 인덱스를 안탄다며 근데 워크벤치로 실행계획 보면 시뻘겋게 나오는것도 없긴함
200ms장난하노 ㅋㅋㅋ 디비 쿼리가 그따위면 어케써
그럼 이 짬통을 해결할 방법이 있겠음? 이런것들은 쥐피티한테 물어도 영 시원찮더라구
아무리늦어도 자너 ㅋㅋ - dc App
저런건 요구사항 문제인데 where조건별로 필요인덱스 모두 생성하고 쿼리나눠 짠다음 union하면 그나마 성능나옴 중복탐색 오지긴 한다만 풀스캔보단낫지 - dc App
DBA끼리 이게 뭐 정확한 기준이 되는건 아닌데 DB 쿼리 전체 평균 수행시간 - 200ms언더 > 뭐 신경은 썼네 - 100ms언더 > 그냥 괜찮네 - 50ms언더 > 좀치네 - 20ms언더 > 고수 요런느낌으로 얘기하는듯 - dc App
like 저따위로 쓰는데 걍 노답 아니야?
like도 DB옵션에서 인덱싱할 수 있도록 하는게 있던거 같은데 켜두고 뭐였는지 까먹었다 - dc App
평균 20ms가 고수?? 농담이라고 말해주라 db로 뭔짓을 하노
느린것 같아서 얘기하는겨? - dc App
ㅇㅇ 너무 느린데?
단건조회하는 포인트쿼리는 ms로 측정안되는데 아마 저게 DB내에 모든 쿼리 기준이라 OLAP성 쿼리도 있고 뭐 이것저것 하면 평균으로 계산하면 그렇게되는거 아닐까 - dc App
전체 쿼리구나 어쩐지 너무하다 싶다라
그럼 최소한 회의때 통합검색 요청은 다 쳐내고 where절을 간단하게 할 수 있게끔 검색 타입같은걸 같이 전달하게 하면 좀 괜찮아질까?
잘잡으면 대용량데이터베이스에서 포인트 쿼리할때 1자릿수 io나올껄 ms로 측정안되고 - dc App
초당 io 횟수 1자릿수?
아니 예를들어 특정회원의 어떤내역 단건 조회하는 국소지점 데이터에 대한 조회기능 같은것들 1개쿼리당 - dc App
ㅇㅎ
네이버 카페가 중고나라 관련 테이블이 수십 수백테라 한다했던거 같은데 거기서 글하나 읽는데 1자릿수 io나온다고 생각하면 될듯 트래픽에대한얘기는뭐.. 못들어봄 - dc App
like 검색은 fulltext 인덱스 걸면 될텐데, 그거 뭔가 하자가 있을걸 한번 알아봐라
풀텍스트 인덱스도 찾아보긴 했는데 일단 운영중인 디비에 인덱스를 추가하면 안될거같고 전문검색은 mysql 기준 3글자부터 가능한데 뭐 기본 설정을 바꾸면 낮출수도 있고 어쩌고.. 근데 검색어는 또 1글자 검색도 지원해야함 그럼 설정을 1로 바꾸면 디비 모든 데이터가 한글자단위로 인덱스되나..하면서부터 걍 머리통 쳐아파서 뇌정지왔음 지금
갑자기 내 상황에 현타오네 난 왜 이거밖에 못해서 좋은델 못갔지
뉴비아님? 처음부터 잘하는 사람은 신입 기준에서 손에꼽을껄 - dc App
입사 3개월차
계속 고민해보고 해결하려는 의지만 있으면 일단 발전은 함 ㅇㅇ 그리고 잘친다는 신입들도 저런 쥿븃싯 요구사항 못해결함 - dc App
mysql 풀텍스트 스캔은 예전에 좀 알아봤는데 쓸게 못되긴 했었음..