php단 처리 서버부하 vs db 값길이 증가

php단 처리 서버부하 vs db 값길이 증가

QA

php단 처리 서버부하 vs db 값길이 증가

본문

안녕하세요

기숙사, 차량유지비, 교육비 지원, 자녀 학자금 지원, 주택자금 지원, 직원대출 제도, 모성보호시설 등으로 구성되어있는 항목들이 있습니다.

해당 항목을 DB에 배열로 저장하여, 글쓸때 체크박스로 선택하면 배열로 들어가 저장하는 식으로 했는데,

향후를 생각하면 DB용량 부분에 문제가 있을것 같아서 저장 값을 기숙사면 1, 차량유지비면 2, 교육비 지원이면 3 이런식으로 DB에 저장하도록 했습니다. 물론 배열

 

예시)

기존

[차량유지비, 교육비 지원, 주택자금 지원]

변경

[2, 3, 5]

 

이렇게 하면 DB용량은 줄었는데

이렇게 하는 항목들이 꽤 있어서 둘중 비교하면 어떤게 좋을까요?

php단에서 처리하면서 발생하는 서버부하 vs db 값길이 증가

 

이 질문에 댓글 쓰기 :

답변 5

기존안이 더 좋습니다.

 

DB 용량은 신경쓰지 않아도 됩니다.

기존안으로 저장해도 몇 백년 자료를 담을 수 있을만큼 하드웨어가 좋아졌습니다.

여기 사이트 q&a글 몇천자 글이 하루 수백개가 올라와도..

여기 사이트 관리자는 DB 용량에 대해 신경쓰지 않습니다.

 

처리하기도 간편하고, 알아보기에도 좋은 기존안이 좋습니다.

그리고 굳이 한 칼럼에 모두 담지 않아도 됩니다. 

항목별로 검색이 필요하다면, 항목당 칼럼을 구분지어 저장하는 것이 더 좋을 수 있습니다.

둘다 상관없습니다.

어차피 배열로 가져오든 별도 컬럼데이터를 가져오든 원하는 값을 가져와 뿌리는 작업은

브라우저단이기 때문에...

다만 서버 부하라기 보단 추후 검색반영시 한 컬럼보다 데이터를 나누는게 더 효율적이긴 합니다.

그리고 컬럼도 각 데이터에 맞게 int 숫자컬럼, datatime 컬럼 등으로 나누시면 더 최적화 됩니다.

저는 둘이 비교를 하자면 변경 후 안도 나쁘지 않다고 생각합니다.

이전 글 보고왔는데 그정도 로직은 서버에 부하가 별로 안갈거라 예상되구요

 

그래도 우려된다면 어차피 매핑용 배열이 고정인것 같으니 static 변수로 선언하고 사용하시면 될것 같습니다. 

소스 코드를 유연하게 작성하기 위해서,

1. 검색용 텍스트는 별도의 searchText 컬럼으로 1번안으로 저장하고,

2. 각종 입력값에 대한 검색이나, 코드 노출, 기존 선택값 불러오기 등을 처리하기 위해서 user_data 필드를 json 형태로 생성하여 저장

 

위와 같은 상황이면,

searchText = '차량유지비, 교육비 지원, 주택자금 지원'

user_data = {

   {'type1' : [

              ....

          ],

    'type2' : [

              ....

    ],

   'type3' : {

           'key' : 'xxx,

          'value' : 'xxx'

}

 

형태로 db 에 저장할수 있습니다.

속성에 따라 중복 선택도 가능하고, 중복 선택된 값에 대한 텍스트나 키값, 배열처리 등등을 유연하게 처리할수 있습니다.

기존에는 php searialize /  unserialize 를 통해서 db에 text 형태로 저정했으나,

mysql 5.7.8 버전부터 json 을 지원하면서, json 을 많이 사용합니다.

json 내부 데이타도 검색조건을 추가할수 있고, 특정 데이타만 추출하여 join 도 가능하니,

1:다 구조를 가진 2개 테이블이나 3개 이상 테이블을 그냥 json 컬럼을 추가해서 하나로 만들수도 있습니다.

 

서비스를 만들다보면, 여러 속성값 때문에 db 컬럼수가 많이 늘어나는데, json 쓰는거 강추합니다.

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT