原文链接:http://www.cnblogs.com/zhouguowei/p/5216316.html

使用索引时数据库性能优化的必备技能之一。在MySql数据库中,有四种索引:聚焦索引(主键索引)、普通索引、唯一索引以及我们这里将要介绍的全文索引(FUNLLTEXT INDEX)。

全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用【分词技术】等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。

在MySql中,创建全文索引相对比较简单。例如:我们有一个文章表(article),其中有主键ID(id)、文章标题(title)、文章内容(content)三个字段。现在我们希望能够在title和content两个列上创建全文索引,article表及全文索引的创建SQL语句如下:

CREATE TABLE `article` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`title` varchar(200) DEFAULT NULL,

`content` text,

PRIMARY KEY (`id`),

FULLTEXT KEY `title` (`title`,`content`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

上面就是在创建表的同时创建全文索引的SQL示例。此外,如果我们要给已经存在的表的指定字段创建全文索引,同样以article表为例,我们可以使用如下SQL语句进行创建:

ALTER TABLE article ADD FULLTEXT INDEX fulltext_article(title,content);

在MySql中创建全文索引之后,现在就该了解如何使用了。众所周知,在数据库中进行模糊查询是使用like关键字进行查询的,例如:

SELECT * FROM article WHERE content LIKE ‘%查询字符串%’;

那么,我们在使用全文索引也这样使用吗?当然不是,我们必须使用特有的语法才能使用全文索引进行查询,例如,我们想要在article表的title和content列中全文检索指定的查询字符串,我们可以如下编写SQL语句:

SELECT * FROM article WHERE MATCH(title,content) AGAINST (‘查询字符串’);

强烈注意:MySql自带的全文索引只能用于数据库引擎为MYISAM的数据表,如果是其他数据引擎,则全文索引不会生效。此外,MySql自带的全文索引只能对英文进行全文检索,目前无法对中文进行全文检索。如果需要对包含中文在内的文本数据进行全文检索,我们需要采用Sphinx(斯芬克斯)/Coreseek技术来处理中文。

注:目前,使用MySql自带的全文索引时,如果查询字符串的长度过短将无法得到期望的搜索结果。MySql全文索引所能找到的词默认最小长度为4个字符。另外,如果查询的字符串包含停止词,那么该停止词将会被忽略。

注:如果可能,请尽量先创建表并插入所有数据后再创建全文索引,而不要在创建表时就直接创建全文索引,因为前者比后者的全文索引效率要高。

转载于:https://www.cnblogs.com/hxphp/p/7089314.html

mysql创建全文索引相关推荐

  1. mysql 创建全文索引_mysql创建索引

    1.创建普通索引 创建一个普通索引时,不需要加任何UNIQUE.FULLTEXT或者SPATIAL参数. 下面创建一个表名为index1的表,在表中的id字段上建立索引.SQL代码如下: CREATE ...

  2. mysql自带的全文索引_MySQL创建全文索引分享

    使用索引时数据库性能优化的必备技能之一.在MySql数据库中,有四种索引:聚焦索引(主键索引).普通索引.唯一索引以及我们这里将要介绍的全文索引(FUNLLTEXT INDEX). 全文索引(也称全文 ...

  3. MySQL 之全文索引

    最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在平时的业务中用到的不多,但是感觉它有点儿意思,所以花了点时间研究一下,特此记录. 引入 概念 通过数值比较.范围过滤等就 ...

  4. mysql创建全外连接的视图_关系型数据库 MySQL 表索引和视图详解

    原创: JiekeXu JiekeXu之路 一.索引 数据库索引通俗的讲就是和书本的目录一样,主要就是为了提高查询数据的效率.由于数据存储在数据库表中,所以索引是创建在数据库表对象上,由表中的一个字段 ...

  5. MySQL之全文索引详解

    点击上方"猿芯",选择"设为星标" 后台回复"1024",有份惊喜送给面试的你 概念 通过数值比较.范围过滤等就可以完成绝大多数我们需要的查 ...

  6. MySQL 之全文索引--fulltext

    https://blog.csdn.net/mrzhouxiaofei/article/details/79940958 这里写自定义目录标题 1.创建表的时候创建索引 2.在已存在的表上创建索引 3 ...

  7. mysql 创建索引失败_mysql创建多列索引及优化 - 没有所谓的失败!除非你不再尝试! - PHPChina ......

    什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面 ...

  8. MySQL 用全文索引解决模糊查询

    点击下方"IT牧场",选择"设为星标" 前言 我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此 ...

  9. mysql 创建列的索引_mysql创建多列索引及优化

    原文连接地址:http://leeyin.iteye.com/blog/441350 什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查 ...

最新文章

  1. 宏基因组教程Metagenomics Tutorial (HUMAnN2)
  2. 自定义FireFox浏览器滚动条
  3. python003 一 Python起步、pyhthon运行方式、语法结构、python变量
  4. telnet实现本地回显
  5. C++ 判断元音/辅音
  6. java 左侧菜单栏收缩_页面左侧可收缩菜单案例
  7. mysql推荐内存_MySQL大内存配置方案 如my-medium.ini、my-huge.ini等
  8. java单例模式 三种_三种java单例模式概述
  9. 测试面试题集-MySQL数据库灵魂拷问
  10. java 随机生成大写字母_java 生成随机大写字母,整数,小写字母
  11. 矩阵分解(LU分解)C语言实现
  12. 外贸术语(FOB,CIF,CFR,FCA,CPT,CIP,EXW、FAS、DAF、DES、DEQ、DDU、DDP)
  13. 通过豆瓣API爬取北美票房榜
  14. python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)
  15. Android|重写ScrollView实现页面越界回弹效果
  16. Java 工具类:风向度数(角度°)转风向,附风向16方位图
  17. Linux-系统管理11-引导过程与服务控制
  18. err-disabled故障分析与处理
  19. mmdetection3d的安装
  20. 试用 wps 2012 抢先版(发个牢骚)

热门文章

  1. QT Core | 信号槽02 - GUI上按钮触发应用程序的函数(lambda表达式)
  2. 十大常用个人linux,Linux—常用十大命令
  3. 双盘转子动力学仿真c语言程序,递归牛顿欧拉(正)动力学仿真
  4. QML笔记-KeyNavigation的使用(2种例子)
  5. MySQL工作笔记-检索出某一时间段中的数据,并更新
  6. Spring Boot中Thymeleaf的初步使用
  7. python字符串的方法和列表的方法_Python 中列表和字符串的方法总结
  8. php去掉字符串末尾数字,PHP-RegEx:删除字符串末尾的数字,并删除特定字符串后的文本...
  9. if laytpl 非_Layui-神奇的layui.laytpl
  10. js提交出现post错误_阿里云的 Node.js 稳定性实践