时间:2021-07-01 10:21:17 帮助过:59人阅读
作者:aolinks
一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,
但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。
-------------------
上面这句话 我是在网上看到的, 说得挺有道理的,mysql 本身提供了一种叫做全文搜索的技术吧,
不过这好像从后来的版本才有的, 比较旧的版本不支持,不过那是很早期的版本了,
现在大家使用的版本 应该都支持的。我现在使用mysql6.0.4 来演示
全文搜索 比起 索引 我觉得更加全面, 索引只对某一个字段,然后在查询时候使用like 配合。
全文搜索它可以设置多个字段进行搜索,可以说是比起select .... like 高级吧。
好了, 既然 全文搜索 有这样的优点,下面我们来看看 是否真的如此。
下面提供的测试例子,是mysql 手册上面的一个例子
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
);
上面这是创建表的mysql 语句, 其中最后一句 FULLTEXT (title,body)
就是为title 和body 创建一个 全文搜索,也就是 以后 方便搜索 标题 和
标题正文的内容。复制语句上去 就成功创建一张表了。
查看一下 全文搜索 是否被创建, 下面语句作用是:查看表的 主键, 索引, 全文搜索
show indexes from 表名
mysql> show indexes from articles;
+----------+------------+----------+--------------+-------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name |
+----------+------------+----------+--------------+-------------+
| articles | 0 | PRIMARY | 1 | id |
| articles | 1 | title | 1 | title |
| articles | 1 | title | 2 | body |
+----------+------------+----------+--------------+-------------+
bitsCN.com