设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 3433|回复: 6

[MySQL管理] mysql全文索引,提高搜索查询效率 [复制链接]

LT管理团队

想飞的鸟

Rank: 9Rank: 9Rank: 9

签到
115
注册时间
2008-6-20
最后登录
2012-5-22
在线时间
558 小时
阅读权限
200
积分
11859
帖子
493
主题
80
精华
3
UID
95
发表于 2008-8-2 01:43:35 |显示全部楼层
来源MYSQL开发文档:

         MySQL支持全文索引和搜索功能。MySQL中的全文索引类型FULLTEXT的索引。  FULLTEXT 索引仅可用于 MyISAM 表;他们可以从CHAR、 VARCHAR或TEXT列中作为CREATE TABLE语句的一部分被创建,或是随后使用ALTER TABLE 或 CREATE INDEX被添加。对于较大的数据集,将你的资料输入一个没有FULLTEXT索引的表中,然后创建索引, 其速度比把资料输入现有FULLTEXT索引的速度更为快。

全文搜索同MATCH()函数一起执行

mysql> CREATE TABLE articles (
    ->   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    ->   title VARCHAR(200),
    ->   body TEXT,
    ->   FULLTEXT (title,body)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO articles (title,body) VALUES
    -> ('MySQL Tutorial','DBMS stands for DataBase ...'),
    -> ('How To Use MySQL Well','After you went through a ...'),
    -> ('Optimizing MySQL','In this tutorial we will show ...'),
    -> ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
    -> ('MySQL vs. YourSQL','In the following database comparison ...'),
    -> ('MySQL Security','When configured properly, MySQL ...');
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM articles
    -> WHERE MATCH (title,body) AGAINST ('database');
+----+-------------------+------------------------------------------+
| id | title             | body                                     |
+----+-------------------+------------------------------------------+
|  5 | MySQL vs. YourSQL | In the following database comparison ... |
|  1 | MySQL Tutorial    | DBMS stands for DataBase ...             |
+----+-------------------+------------------------------------------+
2 rows in set (0.00 sec)

Rank: 2

注册时间
2008-7-15
最后登录
2009-1-18
在线时间
25 小时
阅读权限
20
积分
106
帖子
72
主题
10
精华
2
UID
139

LT粉丝

发表于 2008-8-10 13:43:51 |显示全部楼层
感觉做查询还是用搜索引擎做
在数据库上做还是感觉有点慢
不过有这个功能还是不错的

使用道具 举报

LT管理团队

想飞的鸟

Rank: 9Rank: 9Rank: 9

注册时间
2008-6-20
最后登录
2012-5-22
在线时间
558 小时
阅读权限
200
积分
11859
帖子
493
主题
80
精华
3
UID
95
发表于 2008-9-7 13:08:06 |显示全部楼层
嗯,但对于一些要求不高的网站用这个方法还是好点,要求不高

使用道具 举报

Rank: 1

注册时间
2008-9-25
最后登录
2009-1-26
在线时间
0 小时
阅读权限
10
积分
1
帖子
1
主题
0
精华
0
UID
330
发表于 2008-9-25 22:04:23 |显示全部楼层
如果每天执行2亿次请求,有20亿数据.这个方法恐怕就不行了吧?

使用道具 举报

LT管理团队

想飞的鸟

Rank: 9Rank: 9Rank: 9

注册时间
2008-6-20
最后登录
2012-5-22
在线时间
558 小时
阅读权限
200
积分
11859
帖子
493
主题
80
精华
3
UID
95
发表于 2008-9-27 12:31:48 |显示全部楼层
哈哈,mysql自带的全文索引肯定是不行的,据说开源的sphinx也只是千万级,没有机会测试

使用道具 举报

Rank: 3Rank: 3

注册时间
2009-3-20
最后登录
2012-3-26
在线时间
42 小时
阅读权限
30
积分
489
帖子
6
主题
0
精华
0
UID
2026
发表于 2011-4-2 09:03:37 |显示全部楼层
lucene也是不错的选择

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-3-28
最后登录
2012-5-23
在线时间
104 小时
阅读权限
90
积分
11915
帖子
239
主题
16
精华
0
UID
12570
发表于 2011-4-2 13:18:03 |显示全部楼层
NoAngels 发表于 2008-9-25 22:04
如果每天执行2亿次请求,有20亿数据.这个方法恐怕就不行了吧?  ...

肯定不行
2000万 都 不行

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢红之盟网络提供带宽支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2012-5-23 11:06 , Processed in 0.149668 second(s), 12 queries , Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部