반응형

분류 전체보기 85

MySQL Index 정리

INDEX의 의미? RDBMS에서 검색속도를 높이기 사용하는 하나의 기술이입니다.INDEX는 색인입니다. 해당 TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 full scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 합니다.이런 INDEX는 TREE구조로 색인화합니다. RDBMS 에서 사용하는 INDEX는 Balance Search Tree 를 사용합니다.실제로는 RDBMS 에서 사용되는 B-Tree 는 B-Tree 에서 파생된 B+ Tree 를 사용한다고 합니다. 참고로 ORACLE이나 MSSQL에서는 여러종류의 TREE를 선택하여 사용가능하다. INDEX의 원리? INDEX를 해당 컬럼에 주게 되면 초기 TABLE생성시 만들어진 ..

dev-db 2014.03.25

Table & Index 주의사항

테이블 설계 시 유의 사항1. 반드시 Primary Key를 정의하고 최대한 작은 데이터 타입을 선정한다.로그 성 테이블에도 기본적으로 PK 생성을 원칙으로 함InnoDB에서 PK는 인덱스와 밀접한 관계를 가지므로 최대한 작은 데이터 타입을 가지도록 유지2. 테이블 Primary Key는 auto_increment를 사용한다.InnoDB에서는 기본 키 순서로 데이터가 저장되므로, Random PK 저장 시 불필요한 DISK I/O가 발생 가능InnoDB의 PK는 절대 갱신되지 않도록 유지 (갱신 시 갱신된 행 이후 데이터를 하나씩 새 위치로 옮겨야 함)3. 데이터 타입은 최대한 작게 설계한다.시간정보는 MySQL데이터 타입 date/datetime/timestamp 활용IP는 INET_ATON(‘IP’)..

dev-db 2014.03.25

[Linux] vi & vim

0. 읽기전에!!! 큰따옴표 " " 로 묶인 글은 그 안의 내용을 말하는 것입니다. 만일 "가나다" 라고 하면 큰따옴표("")를 제외한 가나다만 입력하면 됩니다. "", "/", "?" 표시는 입력모드에서 ESC키를 누른뒤 입력하면 됩니다. filename.xxx는 아무 파일을 의미합니다. 즉 자기가 원하는 대로 쓰면 됩니다. 단, 파 일명 작성규칙에 맞는 파일명을 입력해야 합니다. 대소문자는 구분합니다. x와 X는 다릅니다. ""은 엔터키를 의미합니다. "[n]"은 숫자를 의미 합니다. "x, dl"은 x 또는 dl을 의미합니다. 1. History of vi vi는 BSD의 C shell을 개발한 빌 조이가 1976년에 ed의 기능을 확장시킨 ex(Extended editer)편집기를 개발 하고 이를..

dev-os 2014.01.16

[Linux] screen 사용법

screen 은 한 터미널로 한번만 로그인 한후에 여러 쉘과 프로그램을 사용할 수 있습니다. 또한 세션관리 기능도 지원 한답니다.그래서 screen 을 종료하고 심지어 터미널까지 로그아웃하고 종료 하여도 세션이 유지 되고 있습니다.다음에 다시 터미널로 로그인후 screen으로 세션을 불러와서 다시 이전 작업을 이어서 할 수 있습니다. (nohup가 필요없으려나...?) 그럼 screen 명령에 대한 설명을 시작 합니다.1. 쉘모드 명령어 screen : screen 을 시작 하는 기본 명령입니다. : 기본 세션명으로 시작합니다. screen -S 세션명 : -S 다음에 주는 세션명으로 시작합니다. screen -list : -list 옵션을 주고 실행하면 이전에 작업했었던 screen 리스트가 있으면 세..

dev-os 2013.10.07

[Linux] vim vundle

일단 제 주 환경은 Ubuntu Server (Vim)와 Mac(MacVim, Vim) 입니다. Windows 환경에서 작업하지 않은지 몇년이 되어서, Windows에서 이하 내용이 정확히 돌아가는 가에 대한 확신이 없습니다. 참고해주세요. 요즘 매우 유용하게 쓰고 있어서 추천 안할수가 없네요. 카테고리는 마땅치 않아 강좌로 세팅합니다. Vim을 사용하면서 최근 몇년 사이에 인상깊은 발전을 보고 정리겸 공유하고 싶어서 입니다. 그럼 시작합니다. 도입 vim 명령을 내리면 펼쳐지는 심심한 화면 때문에 잘 인지할 수 없지만, 요 몇년간 Vim 은 다른 에디터 처럼 꾸준히 발전해 왔습니다. 버전 숫자 하나가 올라갈때 마다 수많은 버그와 개선이 이루어지곤 했죠. 특히 2006년에 메이저 버전이 업그레이드 되면서..

dev-os 2013.09.25

MongoDB 사용법

MongoDB(from “humongous”)는 전통적인 RDBMS의 대안인 NOSQL Family의 일부로 오픈 소스 “Document-Oriented Database”을 지향하고 있습니다. MongoDB에서 Data는 JSON과 같은 Dynamic Schema 형태의 Document(문자열로 구성된 단위라고 생각하면 됩니다.)구조로 저장 되는데 MongoDB에서는 이를 BSON 이라 합니다. MongoDB가 다른 문서 데이터베이스와 구별되는 한 가지 기능은 SQL문을 MongoDB 쿼리 함수 호출로 매우 간단하게 변환하는 기능있어 기존 RDBMS를 쉽게 마이그레이션 할 수 있다고 합니다. MogoDB가 최근에 주목을 받게 된 이유는 Mobile 환경의 확대와 SNS의 활성화로 설명 할 수 있을 것 같..

dev-db 2013.09.04

[Linux] svn branch & merge

서버버전을 사용하여 소스코드 checkout 및 commit은 많이 하는데 왠지 branch를 만들거나 merge하려니 이거 좀 복잡한 생각이 들때가 있고 메뉴얼을 읽어 봐도 북잡하기만 하다.그러나 Branch의 기능은 전제 Team의 개발에 영향을 주지 않고 혼자서 (또는 소규모 팀별로) 프로그램을 고치고 테스트 하고 잘 될때 head로 보낼때 아주 유용하게 사용할 수 있다. 서버버전을 사용하면 그 방법도 간단하다.우선 Checkout 부터 한번 해보자. (Subversion 저장소- https://coolproj.googlecode.com/svn/trunk )svn co https://coolproj.googlecode.com/svn/trunk/ coolprojcd colproj[작업]svn ci -..

dev-os 2013.08.30
반응형