본문 바로가기

MySQL

(20)
[MySQL] Materialized Path를 사용한 계층형 모델 Graph 구조 중 가장 단순하면서 흔히 사용되는 것이 Hierarchy, 즉 계층형 구조입니다. 이런 곳에 사용하죠. 계층형 게시판 카테고리 조직도 폴더 Tree 추천인 Tree 먼저 기본 설계를 설명하고 다음으로 Materialized Path를 어떻게 적용할 수 있는 지 알아보겠습니다. 1. 계층형 설계의 기본 : Adjacency List 자신의 매니저를 `employee` 테이블에서 재귀 참조하는 예입니다. 정규화된 간결한 구조인데요. 이런 계층형 설계를 Adjacency List 라고 합니다. 그럼 테이블을 생성하고, 테스트 데이터를 입력해 봅니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE DATABASE `graph_test` DEFAULT CHARACTER S..
[MySQL] 테이블 레이아웃 복사 원본 테이블의 데이터는 제외하고 레이아웃만 그대로 복사하여 새로운 테이블을 만들 일이 종종 있습니다. MySQL에서는 어떻게 하는 지 알아봤습니다. 원본 테이블 12345678CREATE TABLE table_copy ( id int NOT NULL AUTO_INCREMENT, address varchar(255) NOT NULL, address_type tinyint UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (id)); INSERT table_copy (address) VALUES ('test');cs 방법 1 : CREATE TABLE ~ AS SELECT ~ LIMIT 0; 123456789101112131415CREATE TABLE table_copy_1ASSELE..
[MySQL] 날짜 함수 MySQL의 날짜 함수를 정리해 봤습니다. MS-SQL을 사용할 때와 비교하면.. 장점 : 직접 구현해야했던 동작까지 바로 제공해주는 다양한 함수단점 : 같은 동작을 하는 함수가 중복하여 존재한다. 이름만 다르거나, 인자의 순서 또는 형식이 다르거나... 프로젝트 초기에 coding convention을 정하고 작성하는 것은 당연한 일이겠지만, MySQL을 사용한다면 함수에 대해서도 어떤 동작에 어떤 함수를 쓰기로 미리 약속 하는 것이 좋을 것 같습니다. 예를들면 "날짜를 더하고 뺄때 TIMESTAMPADD()만 사용하기로 합니다" 와 같은 것!! 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484..
MySQL의 Stored Procedure 특성 MS-SQL을 오래 다뤄 본 사람이라면 Stored Procedure는 옵션이 아닌 필수라는 점에 동의할 겁니다. 하지만 MySQL에서 Stored Procedure를 사용하는 것은, MS-SQL에서 만큼 보편적이지 않습니다. 여러가지 이유가 있겠지만 성능 이슈도 한 몫한다고 볼 수 있는데요. 아래 글을 읽어보니 어느 정도 납득이 되더군요. http://www.joinfu.com/2010/05/mysql-stored-procedures-aint-all-that/ 위 글은 MySQL 5.5 기준으로 씌여졌지만, 5.6과 5.7에서도 별 다르지 않습니다. 요약에 앞 서, MS-SQL 개발자들이 SP를 선호하고 실제로 SP의 사용이 권장되는 이유가 무엇일까요? 데이터를 처리하는 하나의 추상화된 레이어를 제공한..