320x100

전체 글 435

인코딩 설정 관련 설정

MYSQL에서 다국어 지원을 위해 인코딩을 UTF로 설정 해야한다. UTF은 글자당 바이트 수에 따라 숫자가 붙는데 UTF-8, UTF-16, UTF-32등으로 나뉜다. UTF-16은 기본 다국어 평면에 해당하는 문자를 16비트(2바이트)로, 그 외는 32비트(4바이트)로 저장하고, UTF-32는 모든 문자를 32비트(4바이트)로 저장한다. 가장 많이 사용하는 UTF-8은 8비트부터 32비트까지 가변적으로 ASCII와 유니코드를 병행해 저장할 수 있어 자주 사용한다. 하지만 MYSQL의 utf8은 과거 UTF-8을 완벽하게 지원하지 않고 3바이트까지로 제한된 방식으로 구현했었다. 대부분의 문자들이 해당 바이트 내에서 표현됐기 때문이라고 생각하는데, 최근들어 4바이트로 표현되는 문자들이 생기면서 기존 ut..

DB/MYSQL 2021.10.11

부채꼴 모양 스킬 타겟 구하기

흔히 스킬 범위 중에 부채꼴 모양들이 있어서 현재 내 좌표 기준으로 해당되는 타겟이 누가있는지 알아야할 때가 있다. 그래서 부채꼴의 넓이를 구하기 위해선 관련 공식을 알아야할 필요가 있다. 우리는 주입식 교육으로 원의 넓이를 구하는 공식은 대부분 알고 있다. 반지름 x 반지름 x 3.14인데 사실 부채꼴은 원의 일부분 이므로 부채꼴의 각도 만큼만 구하면 부채꼴의 넓이가 된다. '호'란 원의 전체 둘레에서 부채꼴의 각만큼에 해당하는 길이다. 즉 피자 1조각으로 치자면 크러스트의 길이랄까... 자 그럼 다시 원래 주제로 돌아와서 해당 범위에 해당하는 적을 어떻게 구분해 내느냐인데 방법은 선택하기 나름이다. 1. 먼저 해당 스킬 범위를 반지름으로 하는 원에 해당하는 모든 actor 목록을 가져오고 각각 나와 ..

게임 2021.10.09

inet_pton(), inet_ntop()

기존 소켓에서 사용하던 inet_addr(), inet_ntoa() 함수들을 사용하면 error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings error C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings 이런 에러가 발생한다. 물론 4996 error는 옵션변경으로 warning으로 처리되게 하거나 warning 조차도 안보..

스케줄러 사용

MYSQL에서 Event Scheduler를 사용하기 위해선 'event_scheduler'가 활성화 되어있어야 한다. 다음 쿼리로 확인할 수 있다. SHOW VARIABLES event_scheduler; 해당 값이 OFF인 경우 다음 쿼리로 활성화 한다. SET GLOBAL event_scheduler = ON; 생성하기 CREATE EVENT [IF NOT EXISTS] 이벤트명 ON SCHEDULE 스케줄 [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT '주석'] DO [BEGIN] 실행할 sql문; [실행할 sql문]; [END] 스케줄: { AT 타임 [+ INTERVAL 간격 [+INTERVAL 간격...]] | EVERY 간격 [ST..

DB/MYSQL 2021.10.07

paging 작업

대량의 데이터를 불러올 때 한 번에 불러오면 부하가 크기 때문에 게시판 같은 곳에서도 전부 페이징 처리를 해서 데이터를 소량씩 불러온다. 테이블에서 불러올 데이터의 양을 정해주기 위해 쿼리에 LIMIT을 걸 수 있는데 사용법은 다음과 같다. IN PAGE_NUM AS INT ,IN COUNT_PER_PAGE AS INT; SELECT * FROM TABLE_NAME ORDER BY PK ASC LIMIT COUNT_PER_PAGE OFFSET (PAGE_NUM * COUNT_PER_PAGE) 여기서 LIMIT은 가져올 데이터 수, OFFSET은 어디서 부터 가져올건지 정하는 수치다. 대략 페이지 번호와 페이지 당 갯수를 예시처럼 파라미터로 받던지 SP 내부에 정해놓고 페이지만큼 OFFSET을 설정해 원하..

DB/MYSQL 2021.10.07

[펌] MyISAM와 InnoDB 비교

내용이 좋아 별도의 정리없이 퍼온 내용으로 작성한다. 출처: https://needjarvis.tistory.com/45?category=619256 현재 하고 있는 프로젝트는 MySQL DB를 사용하고 있고, TA로 투입이 되면서 테이블을 설계 업무도 병행하게 되었다. (물론 다 하는건 아니었지만) 큰 그림을 그리는 작업을 하는 거라, 업무별 테이블 설계는 해당 업무의 특성인 조회 특화, 트랜잭션 없음, 집계 필요 등 데이터마이닝용 테이블 설계라 MyISAM 쪽으로 가닥을 잡고 설계를 했다. 사실 처음에는 InnoDB로 테이블을 생성하여 테스트를 하였는데... 10만건당, 테이블에 밀어넣는(Batch Insert) 작업이 약 10초정도 걸렸고, MyISAM은 7초정도에 끝났기 때문에.. 고민은 끝난듯 ..

DB/MYSQL 2021.10.07
320x100