MySQL中的全文检索

转载 2016年05月30日 23:46:12

说起数据库,MYSQL最适合用于小型运用的开发。最近想弄一个简单的音乐网站玩一下,数据库是以前在网上爬去的。数据不是特别多,但是也不少,查了一下一共有六十多万条歌曲的记录。既然是做音乐网站的话,首先要有一个搜索的功能,至少要能够搜索你有的歌曲吧。由于以前没有怎么认真弄过sql查询的问题,所以还是用最简单的方法去查询,但是这次遇到了单表上百万记录。我用select * from song where songname like '%key%';去查询,结果效率低到难以忍受。竟然用了三十多秒才出结果!这对于任何运用都是没办法忍受的。后来就想着去做sql查询的优化,google了很久,试过了建立索引,改变表的结构等等都无济于事啊。后来看到一篇专业文章写道,其实对应大数据量查询的时候,很多数据库是支持全文检索的。知道以后我立马开始弄全文检索:

首先我的表默认是:innoDB,这种表的类型不支持全文检索,所以要先改变其类型为MyISAM。

 alter table song engine=MyISAM;

然后要在对应的要进行查找的字段上面建立全文检索的索引:

alter table add fulltext index(songname);

如果要同时对多个字段进行检索可以这样:

alter table add fulltext index(songname,singername);

这样做好以后呢,就可以对表进行全文检索了,速度提升是飞一般的感觉啊!现在的结果是秒出啊。可以这样去检索字段:

select * from song where match(singername) against('周杰伦') ;

或者多字段:

select * from song where match(singername,songname) against('风雨');

 

相关文章推荐

基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计

来自:http://blog.zyan.cc/post/360/ 前言:本文阐述的是一款经过生产环境检验的千万级数据全文检索(搜索引擎)架构。本文只列出前几章的内容节选,不提供全文内容。   ...

全文检索引擎Solr系列——整合MySQL、MongoDB

全文检索引擎Solr系列——整合MySQL、MongoDB

支持中文的MySQL 5.1+ 全文检索分词插件

经过不停的尝试和努力,以最新的 mysql 5.1.11-beta 为基础,制作的分词插件已经测试成功,现在发布如下。 由于 mysql 5.1.x 本身的架构作了修改,所以增加分词直接以插件形式方...
  • ahstudy
  • ahstudy
  • 2011年11月09日 15:18
  • 2086

MySQL 全文检索

MySQL 全文检索支持MySQL 全文检索支持 MyISAM 40以上 InnoDB564以上 全文检索语法 检索方式 简单示例 MySQL全文索引相关配置 注意事项 MyISAM (4.0以上)从...

基于MySQL全文检索引擎—sphinx

sphinx全文检索

Mysql 全文检索Demosql

Mysql 全文检索一、概述MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。二、语法MATCH (col1,col2,...) AGAINST (...

MySQL中文全文检索

MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。...
  • zhay879
  • zhay879
  • 2017年06月04日 19:07
  • 116

基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计

前言:本文阐述的是一款经过生产环境检验的千万级数据全文检索(搜索引擎)架构。本文只列出前几章的内容节选,不提供全文内容。   在DELL PowerEdge 6850服务器(四颗64 位Inte...

MYSQL 百万条记录全文检索中文解决方案

转自:http://blog.sina.com.cn/s/blog_7865b0830101ach4.html 说起数据库,MYSQL最适合用于小型运用的开发。最近想弄一个简单的音乐...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL中的全文检索
举报原因:
原因补充:

(最多只允许输入30个字)