본문 바로가기

mariadb7

MariaDB(mysql) UUID 로 PK 사용하기 늘 디비를 설계할 때 고민되는게, AUTO_INCREMENT 속성의 INT 또는 BIGINT 로 설정된 Primary Key 컬럼을 사용하는데요, 항상 의문이었습니다. Unsigned Integer 의 경우 0 에서 4,294,967,295 까지이고, Unsigned Big Integer 는 0 에서 18,446,744,073,709,551,615 까지입니다. 사실 BIGINT 로 해도 해당 모델을 사용하는 어플리케이션이 먼저 죽으면 죽었지 이게 먼저 채워질리는 없어 라고 생각하며 AUTO_INCREMENT flag 를 사용한 BIGINT 속성의 Primary Key를 늘 사용해 오다가, 갑자기 구글처럼 세계의 모든 블로그의 포스트를 URL 별로 저장하면 이게 가능할까? 였었습니다. 고유한 식별자에 대해.. 2017. 10. 12.
MariaDB(MySQL) DB Backup Dump Script MariaDB(MySQL) DB Backup Dump Script 각 테이블 별로 덤프 파일을 일별로 관리하는 스크립트입니다. #!/bin/bash dump_date=$(date +%Y-%m-%d) backup_root = [stored dump file] mkdir -p $backup_root/$dump_date backup_dir=$backup_root/$dump_date r_date=$(date +%Y-%m-%d --date '3 days ago') db_list=`mysql -u[account] -p[password] -e "show databases" | tail -n+2`; for db_name in $db_list; do if [ "$db_name" != "performance_schema".. 2017. 1. 10.
MariaDB(MySQL) 원격에서 접근이 가능하도록 설정하기 MariaDB(MySQL) 원격에서 접근이 가능하도록 설정하기 이 문서는 2016-12-21에 작성되었습니다.이 문서의 MariaDB는 mysql Ver 15.1 Distrib 5.5.50-MariaDB, for Linux (x86_64) using readline 5.1 입니다.이 문서의 Centos7은 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 입니다. MariaDB 패키지는 기본적으로 127.0.0.1 만 접근하도록 허용합니다. 보안상의 이유때문인데 예전 MySQL 에서는 skip-networking 지시어를 해제(주석처리) 해서 네트워크 단에서 접근이 가능하도록 할 수 있었.. 2016. 12. 21.
mysql group 사용하기 MariaDB(MySQL) Group By 사용하기 Schema: CREATE TABLE `group_test`.`example` ( `seq` INT UNSIGNED NOT NULL AUTO_INCREMENT, `category1` VARCHAR(45) NOT NULL, `category2` VARCHAR(45) NOT NULL, `title` VARCHAR(45) NOT NULL, `type` ENUM('단어', '문장') NOT NULL DEFAULT '단어', `description` TEXT NOT NULL, PRIMARY KEY (`seq`)); Records: 1대분류1소분류1분류001단어설명2대분류1소분류1분류002단어설명3대분류1소분류1분류003단어설명4대분류2소분류1분류004단어설명5대.. 2016. 10. 31.
디비 생성하기 Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] 디비이름 [생성 명세]... [생성 명세]: [DEFAULT] CHARACTER SET [=] 문자셋이름| [DEFAULT] COLLATE [=] 콜레이션이름 CREATE DATABASE 는 주어진 디비 이름으로 데이터베이스를 생성합니다. 이 구문을 사용해, 권한(privilege)를 이 데이터베이스를 위해 생성해야 할 것입니다.CREATE SCHEMA는 CREATE DATABASE 와 같은 의미입니다. 예제: CREATE SCHEMA `group_test`;: group_test 라는 이름의 데이터 베이스를 생성합니다. CREATE SCHEMA `group_test` DEFAULT CHARACTER SET utf.. 2016. 10. 31.
[쿼리] 특정 컬럼 중복 개수 확인 및 중복된 레코드 보기 누가 CVS 데이터를 줘서 DB 에 밀어넣는데, 중복된 컬럼이 꽤 많았다. 우연치 않게 발견되어, 전체 파악을 하기 위해 특정 컬럼에 대해 중복되는 레코드가 있으면 갯수를 알려달라고 마리아에게 물었다. ```sqlSELECT count([컬럼이름])-count(distinct [컬럼이름]) FROM [테이블이름] WHERE 1``` 개수가 나왔다. 알려줬더니, 어떤 레코드들인지 알려달라고 왔다. 그래서 마리아에게 특정 컬럼에 대해 중복(동일)되는 레코드를 뽑아달라고 했다. ```sqlSELECT * FROM [테이블이름] GROUP BY [컬럼명] HAVING COUNT([컬럼명]) > 1``` 잘 알려준다. 참고블로그: 노을지기 노리터, mysql - 필드 중복 값 찾기 2016. 10. 26.