mariadb全文索引

2022-10-27 16:20:56 浏览数 (1)

# 前言

如同翻译的那样,Mroonga是一个适用于MySQL的存储引擎。它为所有MySQL用户提供了快速的全文搜索功能。

这里直接演示怎么在MariaDB上启用mroonga存储引擎

# 1) 加载mroonga插件

代码语言:javascript复制
MariaDB [(none)]>INSTALL SONAME 'ha_mroonga';

MariaDB [(none)]> CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so';

# 2)建表测试一下

代码语言:javascript复制
MariaDB [(none)]>create database jerry;

MariaDB [(none)]>use jerry

MariaDB [jerry]> create table t1 (id int not null,name varchar(100)not null,notes text,fulltext index(notes))engine=mroonga;

# 3)胡乱插入一些数据

代码语言:javascript复制
MariaDB [jerry]> insert into t1 values(1,'擦擦擦','我也不会告诉你');

Query OK, 1 row affected (0.00 sec)



MariaDB [jerry]> insert into t1 values(2,'啦啦啦','我也不会告诉你');

Query OK, 1 row affected (0.01 sec)



MariaDB [jerry]> insert into t1 values(3,'dashaba','森马服饰');

Query OK, 1 row affected (0.00 sec)



MariaDB [jerry]> insert into t1 values(4,'victor','大森马投资有限公司');

Query OK, 1 row affected (0.00 sec)



MariaDB [jerry]> insert into t1 values(5,'kukumimilulu','森马跨境电商有限公司');

Query OK, 1 row affected (0.00 sec)



MariaDB [jerry]> insert into t1 values(6,'王思聪','王爸爸联合大森马跨境电商有限公司');

Query OK, 1 row affected (0.00 sec)

# 4)用如下命令查询

代码语言:javascript复制
MariaDB [jerry]> select * from t1 where match(notes) against('大森马' in BOOLEAN MODE);

 ---- ----------- -------------------------------------------------- 

| id | name      | notes                                            |

 ---- ----------- -------------------------------------------------- 

|  4 | victor    | 大森马投资有限公司                               |

|  6 | 王思聪    | 王爸爸联合大森马跨境电商有限公司                 |

 ---- ----------- -------------------------------------------------- 

2 rows in set (0.00 sec)


5 ) 通过执行计划我们可以看到已经用到notes这个全文索引,并且只需要扫描一行

MariaDB [jerry]> explain select * from t1 where match(notes) against('大森马' in BOOLEAN MODE);

 ------ ------------- ------- ---------- --------------- ------- --------- ------ ------ ----------------------------------- 

| id   | select_type | table | type     | possible_keys | key   | key_len | ref  | rows | Extra                             |

 ------ ------------- ------- ---------- --------------- ------- --------- ------ ------ ----------------------------------- 

|    1 | SIMPLE      | t1    | fulltext | notes         | notes | 0       |      |    1 | Using where with pushed condition |

 ------ ------------- ------- ---------- --------------- ------- --------- ------ ------ ----------------------------------- 

1 row in set (0.00 sec)

原文链接:https://blog.51cto.com/jinyan2049/1942333

0 人点赞