인덱스 인덱스 조건 : select 많음, insert,update,delete 적은 테이블 바이너리 로그 바이너리 로그는 복제를 위해 사용되거나 PIT (Point in Time) 복구를 위해서도 사용됨 테이블 파티셔닝 하나의 큰 테이블로 사용하는 경우 인덱스도 커지고 물리적인 공간도 필요가상칼럼 다른 칼럼의 의해서 자동으로 설정된 기능, insert 이후 값 변경은 불가mariadb 정규표현식 기능 확장 Client 연결 처리 방식 1개의 클라이언트 연결 = 1개의 전용 쓰레드 생성 1000개의 클라이언트 연결 = 1000개의 전용 쓰레드 생성: 경합이 심해지고 성능 떨어짐, 상태와 상관없이 1000개가 생성되어 있어야 한다. 슬로우 쿼리 설정 쿼리 타임이 몇초 이상인 쿼리에 대해 로그 파일에 기록하..
mariadb 암호화 DB 암호화 1. 개인정보 유출시 안전성 확보 2. DB 보안에 대한 법률적 요구사항 만족 3. 내부자 유출 및 외부 공격 위협으로부터 데이터 보호 4. 암호화와 암호키 관리가 핵심 5. DBMS 기능에 따른 trade-off 고려 내부 암호화 어플리케이션 수정 불필요, DBMS 자체 암호화 기능 (구축 용이)암복호화의 서버 부하 발생, 제한적인 암호화 알고리즘DB 테이블 내 암호키 존재로 보안성 약함, 암호키 분리 위한 HSM 장비 필요 외부 암호화 DB 서버 독립적 암호화, 보안성 강화, 강력한 접근제어, 다수 DB와 어플서버 연계통신 증가에 따른 부하, 어플리케이션 수정의 부담, 암복호화 서버의 부가적인 접근제어 시스템 마련
sharding 데이터양이 방대데이터를 분활하여 속도를 끌어올리는 작업 : 이더리움?
MariaDB Galera and MariaDB MaxScale on CentOS MariaDB 10 이상 설치시 galera 별도 설치 필요없음 (YUM 설치시) 특징 Galera Cluster will not work with MyISAM or similar nontransactional storage engines. 사전작업 Disable SELinuxDisable firewalldhostname 지정 (선택) : 서버 구분 서버 구성 maxscale (선택)MariaDB Galera Cluster node 1,2,3 *maxscale클러스터에 대한 라우터 역활, 트래픽을 적절한 서버에 분배, 클러스터의 Out-of-Band 모니터링, MariaDB 저장소 설정 curl -sS https://dow..
트랜잭션 (Transaction) 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위 아래의 질의어(SQL)를 이용하여 데이터베이스를 접근 하는 것 select insertdeleteupdate 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정의 트랜잭션 특징 원자성 트랜잭션이 데이터베이스에 모두 반영되던가 아니면 전혀 반영되지 않아야 한다 일관성 작업처리 결과가 항상 일관성이 있어야 한다 독립성 둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 경우 다른 트랜잭션의 연산에 끼어들 수 없다 지속성 트랜잭션이 성공적으로 완료된 경우 결과는 영구적으로 반영되어야 한다 commit, rollback 연산 Commit 하나의 트랜잭션이 성공적으로 끝났고, 데이터 베이스가 일관성 있는 상태로 ..
storage engine innoDB MyISAM 보다 후에 출시Transaction-safe 장점 Commit, Rollback, 장애복구, row-level locking, 외래키 기능 데이터 무결성 보장, 데이터 복구에 유리 Row-Level Lock (행단위 Lock) : INSERT, UPDATE, DELETE) 속도 빠름 메모리에 인덱스/데이터 올려서 처리 단점 구조 복잡 (MyISAM 보다) : 설계에 많은 시간 필요 많은 시스템 리소스 자원 소모 Full-Text 인덱신 불가 : 트랜잭션 처리 필요, 데이터 입력, 수정이 빈번한 대용량 사이트 MyISAM ISAM (Indexed Sequential Access Method) 보완하기 위해 나온 엔진 장점 테이블 간 외부 관계에 대해 신경..
데이터베이스 엔진 / 스토리지 엔진 데이터베이스 관리 시스템(DBMS)이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제(CRUD 참조)하는 데 사용하는 기본 소프트웨어 컴포넌트이다. 데이터베이스 엔진을 조작할 때 DBMS 고유의 사용자 인터페이스를 이용하는 방법과 포트 번호를 통해하는 방법이 있다. 대부분의 데이터베이스 관리시스템은 DBMS 의 사용자 인터페이스를 통하지 않고, 사용자가 내장된 엔진과 상호작용을 할 수 있는 자신만의 애플리케이션 프로그래밍 인터페이스(API)를 포함하고 있다. 데이터베이스 엔진이라는 용어는 종종 데이터베이스 서버 또는 데이터베이스 관리 시스템이라는 용어와 서로 바꾸어 사용된다. 저장엔진라이선스트랜잭션 지원AriaGPL아니오BlitzDBGPL아니오FalconG..
리플리케이션 하는 이유 읽기 부하 분산 (슬레이브) 데이터 분석 (슬레이브) 백업지원 (슬레이브) * 마스터에 영향을 주지 않고 슬레이브에서 백업하기 위함 (안정성?) 데이터 분산 (마스터에 연결하지 않고 로컬에서 작업)MariaDB 10.0 introduced replication with global transaction IDs. These have a number of benefits, and it is generally recommended to use this feature from MariaDB 10.0. 마리아DB 10버전 이후부터 GTID 라는것을 지원하는데 사용하는것을 추천한다고 함 마스터와 슬레이브간 버전이 다를때 마스터의 버전이 낮은것 (older) 을 권고 계속 리플레케이션을 연결할..
mysql, mariadb 혼용 거의 둘다 사용 가능함 DB 접속 mysql -u DB아이디 -p 패스워드입력 mysql -u DB아이디 -p 패스워드입력 -h 아이피 초기 DB 패스워드 지정 mysqladmin -u root password 비밀번호 예전 방식이고 버전별로 초기 패스워드 정책은 약간식 다름 mysql 도구 myisam_ftdump MyISAM에서 사용하는 FULLTEXT 인덱스에 대한 정보 출력해주는 TOOL mysqlaccess DB에 대한 계정에 접근권한을 체크해주는 TOOL mysqldumpslow queries.log slow query log 를 정리해주는 tools mysqlslap mysql 서버에 쿼리를 실행하여 부하를 유발할수 있는 Tool mysqldump 백업 mys..