by 구루비스터디 MariaDB 스토리지 엔진 MROONGA 전문 검색 스토리지 엔진 MROONGA [2019.08.11]
스토리지 모드 | 래퍼 모드 |
---|---|
SELECT * FROM tb_test WHERE MATCH(doc_body) AGAINST ('아이폰' IN BOOLEAN MODE);
doc_body | 구분자 | n-Gram |
---|---|---|
중고 아이폰 3G 팝니다. | O | O |
아이폰 3Gs 구해 봅니다. | O | O |
애플아이폰 3Gs 싸게 팝니다. | X | O |
INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';
CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so';
CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';
create table tb_test (
id int primary key auto_increment,
content varchar(255),
fulltext index fx_content (content) comment 'parser "TokenBigramIgnoreBlankSplitSynbolAlphaDigit"'
) ENGINE = mroonga COMMENT = 'engine "innodb"' DEFAULT CHARSET utf8mb4;
INSERT INTO TB_TEST (CONTENT) VALUES ('오늘은 MariaDB 공부를 했습니다. 내일도 MariaDB 공부를 할 것입니다.");
INSERT INTO TB_TEST (CONTENT) VALUES ('오늘은 MariaDB 공부를 했지만, 내일은 MariaDB 공부를 할 것입니다.");
SELECT *, MATCH (content) AGAINST ('MariaDB' IN BOOLEAN MODE) AS SCORE
FROM tb_test
WHERE MATCH (content) AGAINST ('MariaDB' IN BOOLEAN MODE)
ORDER BY MATCH (content) AGAINST ('MariaDB' IN BOOLEAN MODE) DESC;
create server 'remote' foreign data wrapper 'mysql' options
(host 'remote',
database 'target_db',
user 'appuser',
password 'passwd123',
port 3306,
socket ''
owner 'appuser');
SELECT * FROM mysql.servers;
-- 원격/로컬 이름이 같음
create table tb_remote (
col01 bigint(20) not null,
col02 bigint(20) not null,
col03 varchar(20) not null default '',
primary key (col01)
) engine = federated connection = 'remote';
-- 원격/로컬 이름이 다름
create table tb_local (
col01 bigint(20) not null,
col02 bigint(20) not null,
col03 varchar(20) not null default '',
primary key (col01)
) engine = federated connection = 'mysql://appuser:passwd123@remote:3306/target_db/tb_remote';
- 강좌 URL : http://www.gurubee.net/lecture/4208
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.