作者: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 |
+----------+------------+----------+--------------+-------------+