회사에서 회계프로그램을 만드는데 셀렉트를 어떻게 해야할지모르겠어서 질문합니다.
사용자가 계좌번호를 등록하면 저희는 거래내역을 받아서 DB 에 넣어줍니다.
현재 테이블 컬럼은
index / 년월일/시간 / 적요 /내용 /입금 /출금 /잔고 /메모/ 체크
이런식으로 있습니다. 간추린거지 저거보다 좀더 많이있습니다.
거래내역을 받아서 넣을때 table_A 에서 위 테이블로 인서트 합니다.
위 과정은 아무문제가 없습니다.. 하지만
인서트시 같은 년월일 에 입금과 출금 잔액이 동일한 거래건은 체크에 체크하여 같이 넣어줘야합니다
문제는 여기서 발생합니다 현재 코딩되어있는대로는 row하나당 다른거래건과 비교하여 같은날에 금액이 같으면 체크에 넣고있습니다.
이렇게하니 거래건이 많아지면 엄청난 부하가 걸려 페이지로딩만 몇분이 걸리더군요 그리하여 실사용 서버에는 현재 위기능을 삭제 해놓은 상태 입니다.
문제는 또 있습니다. 위와같이 예를들어 6월 1~15일 까지 거래건을 조회하여 체크에 체크를 하였는데
사용자가 15일날 계좌를 추가하면 추가한 계좌에 있는 것도 같은날 입금과 출금이 같은 거래건에 체크를해줘야합니다.
즉 사용자가 거래내역을 볼때마다 한번씩 체크하여 체크에 체크를 넣어줘야합니다..
이부분 쿼리를 어떻게 짜야 부하가 안걸리고 될지 의문입니다..
실제 사용자는 800명이 넘으며 거래건수는 계좌당 최소 300 건 이상 정도 많게는 1000건 정도 될겁니다..
이부분을 어떻게 쿼리를 짜야하는지 도움을 요청합니다. ㅠㅠ
그리고 위에 table_A 에는 현재 재약 조건은 걸려있지 않습니다. key 도 없습니다..
사용하는 DB 는 마리아 DB 입니다.