0. Storage Engine (Database Engine)
데이터베이스 관리 시스템(DBMS)이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제하는데 사용하는 기본 소프트웨어 컴포넌트이다.
쉽게 말하면 데이터를 어떤 모양으로 어떤 방식으로 적재할건지에 대한 정의이다.
(트랜젝션 유무 등 엔진마다 느낌이 다르니 꼭 성격을 확인하고 사용하고 테스트해볼것.)
현대의 많은 DBMS가 동일한 DB 내에 다중 저장 엔진을 지원한다.
ex) A table은 innodb B table은 MyISAM 을 사용하는 등으로 활용할 수 있다.
mariadb engine 종류보기
https://mariadb.com/kb/en/storage-engines/
1. FEDERATED
FEDERATED ENGINE은 관리가 안되고 있다.
https://mariadb.com/kb/en/federated-storage-engine/
2. FederatedX
0. 참조
FederatedX 스토리지 엔진은 MariaDB 5.1 에서 처음 출시되었습니다.
https://mariadb.com/kb/en/about-federatedx/
3. Connect (ubuntu 18.0.04 기준)
10.1.9(베타) 10.2.0(안정적인) 부터 적용
1. connect란
CONNECT 스토리지 엔진을 통해 MariaDB는 외부 로컬 또는 원격 데이터(MED)에 액세스할 수 있습니다.
참조할 테이블에 연결하는 테이블..?
예를들어 기역 서버에 A라는 database에 a라는 테이블이 있는데
a 테이블과 연결되는 니은 서버에 B라는 database의 b라는 테이블로 생성하는 것이다.
기역 서버에서 부여한 권한(grant all, select, insert, delete, update etc..) 에 따라 권한이 결정되며
a테이블이 변화되면 b테이블에도 변화가 생긴다. (insert, update, delete)
또한 b테이블에 변화가 생기면 a 테이블에도 변화가 생긴다. (insert)
(delete, update를 할 경우 [SQL ERROR (1296): Got error 122 'Remote: Table 'B.b' doesn't exist' from CONNECT] 에러가 난다.)
참고로 create table을 할 경우 컬럼은 자동으로 생성하여 연결해주지만
index 등의 정보는 없으므로 상세하게 연결할 경우 다 설정해 주어야한다.
나는 ubuntu에서 했지만 docs를 보면 connect는 windows에서 개발 후 다른곳에 맞게 변형되었다고 하니 windows에서도 잘 될것이라고 생각된다.
https://mariadb.com/kb/en/introduction-to-the-connect-engine/
2. 설치
1. plugin package install
# shell
sudo apt-get install mariadb-plugin-connect
2. plugin install
# mariadb
INSTALL SONAME 'ha_connect';
3. 확인
# mariadb
show engines;
3. connect 테이블 생성
※ 주의
※ 무한 루프를 피하기 위해 MYSQL 본인 자체를 참조하지 않도로 주의하세요!
※ Connect는 BLOC or TEXT 컬럼은 지원하지 않습니다.
ERROR 1163 (42000): Storage engine CONNECT doesn't support BLOB/TEXT columns
# 포트가 3306이면 생략가능
CREATE TABLE [테이블명]
ENGINE = CONNECT
TABLE_TYPE = MYSQL
CONNECTION= 'mysql://[접속userId]:[접속userPW]@[접속IP][:접속포트]/[접속DB]/[참조/연결할 테이블명]'
;
ex)
CREATE TABLE auth_group
ENGINE = CONNECT
TABLE_TYPE = MYSQL
CONNECTION= 'mysql://root:rootpassword123!@127.0.0.1:13406/test/auth_group'
;
https://vettabase.com/blog/using-connect-to-access-remote-mariadb-or-mysql-tables/
참조
'DB(SQL) > mysql|maria' 카테고리의 다른 글
[MARIADB] Insert into same table trigger mysql (0) | 2022.02.16 |
---|---|
[mariadb] install mariadb on ubuntu 18.04 (0) | 2022.01.26 |
[MariaDB] MariaDB에서 CTE(Common Table Expression) 사용 시 주의점 (0) | 2021.08.06 |
[MAIRA DB] 스키마 비교 (0) | 2021.08.06 |
[MYSQL] 유용한 명령어 (0) | 2021.08.05 |