|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1793688 |
25 |
2015-12
1793688
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (737) |
정은준1 |
2014-05 |
5268677 |
0 |
2014-05
5268677
1 정은준1
|
64258 |
Aten 매트릭스 스위치 질문드려요! (12) |
수촌마을 |
2022-03 |
1958 |
0 |
2022-03
1958
1 수촌마을
|
64257 |
키보드 전원부분 수리 (2) |
NGC |
2019-07 |
3551 |
0 |
2019-07
3551
1 NGC
|
64256 |
HP Procurve 1620-8g 모델 vlan 관련하여 (6) |
싱국날강도 |
2017-02 |
4600 |
0 |
2017-02
4600
1 싱국날강도
|
64255 |
유심칩을 넣어서 전화를 쓸 수 있는 기기같은게 있을까요? (1) |
까치산개꿀탱 |
2022-03 |
2178 |
0 |
2022-03
2178
1 까치산개꿀탱
|
64254 |
왜 vDGA를 사용하는 VM은 스냅샷 기능을 제공하지 않을까요? (3) |
송주환 |
2018-05 |
3322 |
0 |
2018-05
3322
1 송주환
|
64253 |
시스템구성 에 대한 조언 부탁드립니다... (12) |
need21 |
2010-10 |
6664 |
0 |
2010-10
6664
1 need21
|
64252 |
씨그마컴의 hdtv 드라이버갖고 계신분 공유부탁드려요. (1) |
김건우 |
2013-08 |
10148 |
0 |
2013-08
10148
1 김건우
|
64251 |
z620 자꾸 꺼져서 문의드립니다. (5) |
슬루프 |
2018-05 |
3490 |
0 |
2018-05
3490
1 슬루프
|
64250 |
공유기 컨넥션 정보 및 동작(속도)설정에 관해서... (2) |
김건우 |
2015-01 |
9229 |
0 |
2015-01
9229
1 김건우
|
64249 |
안드로이드핸드폰에 유선랜연결하려면 루팅필수인가요? (5) |
김건우 |
2015-01 |
12385 |
0 |
2015-01
12385
1 김건우
|
64248 |
슈퍼마이크로 ipmi 질문 (1) |
1김In1 |
2013-09 |
5482 |
0 |
2013-09
5482
1 1김In1
|
64247 |
UPS도 소음이 있나요? (21) |
ITES |
2017-03 |
11093 |
0 |
2017-03
11093
1 ITES
|
64246 |
NFC말고 근접장치로 해석되어있는데 (near fieldProximity provider)...이건뭔가요? |
김건우 |
2019-07 |
2379 |
0 |
2019-07
2379
1 김건우
|
64245 |
Firepro V3800 성능 (5) |
나우마크 |
2016-03 |
4513 |
0 |
2016-03
4513
1 나우마크
|
64244 |
긴급질문.. seagte NL35 / st3500071fcv <- 이제품 단기간에 구할수 있는 방법없… (2) |
이영규 |
2010-12 |
7855 |
0 |
2010-12
7855
1 이영규
|
64243 |
부팅속도 관련하여 질문이 있습니다. (5) |
조아 |
2015-01 |
4544 |
0 |
2015-01
4544
1 조아
|
64242 |
이케아 쇼핑 방법 (6) |
무아 |
2015-01 |
5711 |
0 |
2015-01
5711
1 무아
|
64241 |
일반적으로 사용하는 메인보드에 ECC/REG RAM을 전혀 사용할 수 없나요? (5) |
신우섭 |
2016-04 |
4478 |
0 |
2016-04
4478
1 신우섭
|
64240 |
NVS 310 화면 출력 문제 문의 (4) |
dcmr |
2013-09 |
16299 |
0 |
2013-09
16299
1 dcmr
|
64239 |
슈마 온보드의 WOL (2) |
임민규 |
2011-01 |
7494 |
0 |
2011-01
7494
1 임민규
|
업무량을 통해 프로젝트 기간이 산출되지 않아서
설계/개발 기간이 보통 절대적으로 부족한 상황에서
DB 제약을 걸어 놓으면
개발기간안에 개발 못한다고 압력이...
DA 가 투입된 프로젝트는 정규화를 잘 수행하는 편입니다.
개발 PL 들이 설계를 하는 경우 정규화가 많이 부족한 편이죠.
퍼포먼스는 과도한 정규화만 아니면 보통 정규화 되어 있을때 더 좋게 나옵니다.(경험상)
1번하고 2번 답변 : 케이스 바이 케이스입니다.
규모가 작은 사이트나 중요도가 좀 낮거나 개발일정이 너무 촉박하거나 그런 경우는 no에만 pk걸고 나머지는 전부 어플단에서만 처리합니다.
규모가 좀 되거나 (돈값은 해야되니깐) 중요도가 너무 높은 곳은 어플단에서도 체크하지만 한치의 불량데이터도 있어서는 안되기 때문에
그런곳을 개발할땐 fk, unique 전부 다 사용합니다.
3번 : 위의 답변과 기본적으로는 같고요.
웹이라고 하여도 업무시스템같은 특정 소수 이용자 사이트는 상관이 없을수도 있지만,
불특정 다수가 겁내 많이 들어오는 사이트는 바로 그 약간의 퍼포먼스 하락을 결코 무시할 수 없게 됩니다.
극단적인 경우는 동일 데이터를 사방에 복사하기도 하고 (캐쉬효과?) 벼라별 작업을 다 합니다;;
캐쉬도 걸 수 있으면 최대한 걸고요
사용자들이 예전엔 그래도 클릭했을때 2~3초 정도는 기다렸지만 요즘엔 1초 넘어가면 화면 닫아버립니다.
애초에 느리면 고객사에서 검수를 안해주죠.
물론 저같은 경우는 제가 느린걸 너무 싫어해서 그렇게 만들지도 않지만
다른업체가 속도 문제로 검수를 못받아서 한달동안 튜닝만 주구장창 하는걸 봤습니다.
비정규화는 물론이거니와 ajax방식을 포함한 온갖 고급기법 사용해서 이쁘게 만든 UI까지 싹 바꾸면서 겨우 1초내로 진입하여 완료하더군요.
(제가 기존에 동일디비 동일 환경 동일 구성으로 0.1초내로 나오는 사이트를 미리 만들어 놓은 것 때문에 더 비교되서 그런걸지도 ㅋㅋ)
필요 있던 없던 unique key는 반드시 넣어야 합니다 (auto)
innodb의 성능에 영향이 있습니다.
join의 경우는 속도가 늦습니다.
그래서 join과 sub set operation + join 등의 방법을 적절히 섞어서 씁니다. 상황에 맞게.
경험칙이 더 큽니다.
1의경우 FK를 하지않으면 장/단점이 있습니다... FK가 없으면 DB변경이 좀더 자유로워집니다..
운영적인 측면에서 보면 FK없는게 좀더 이득일수있습니다.
FK가 제대로 걸려있는경우는 데이터 수정을 하나할려고해도 여러테이블을 전부 신경써줘야하는 경우가 생겨서요...
반대로 데이터정합성은 좀더 보장이 돼겠지요...
2의 경우는 특별한 이유가 있어서 그런건 아닌것 같네요...
프로그램적으로 중복을 막았다고해도.. 중복건을 허용하지않을것이라면 PK는 존제하는게 나아보이네요...
3의 경우도 결국 설계당시에는 정규화를 어느정도 했었지만...
운영하다보면 정규화를 하게돼면... join이 많이 사용돼고.. 불편한경우가 있어서...
아마 운영하면서 컬럼들이 늘어난경우라면.. 정규화를 안한경우도 많이 생길수있죠...
다만 얼마나 많은 수정건이 발생할지 모르는 상황이라면 않하는게 편하겠죠.
상황별로 전 그냥 트리거를 사용하거나 일정 시간별로 무결성 체크하는 부분을 넣어줍니다.
꽤 오래 이쪽일 했는데 처음에는 ASP + MSSQL로 시작해서 FK는 당연한걸로 봤지만 시간이 지날수록 않하게 되더군요
2. 상황별로 틀리겠죠. 어디서는 ID를 unique를 쓰겠지만 생각을 좀 더 달리한다면 user_no를 unique 형태로 해놓고 ID는 그냥 따라다니는 형태로 만들기도 하거든요
3. 문서화가 중요한 이유겠죠. 사전에 문서화되지 않은 개발 사이트는 정규화를 제대로 하지 않는 경우가 많습니다.
말씀하신 내용은 개발단계에선 그럭저럭 넘어갈만한데
나~~~중에 data 가 누적되고 DB가 거대화 되면서 장애를 일으키는 포인트가 되는 사항들이죠 모,,,
쿼리튜닝과 더불어 index 적절히 걸어주는 것도 속도에 중요하더군요.