iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 全文索引的原理与缺陷
  • 858
分享到

MySQL 全文索引的原理与缺陷

MySQL索引mysql全文索引 2022-05-10 19:05:07 858人浏览 薄情痞子
摘要

Mysql全文索引一种特殊的索引,它会把某个数据表的某个数据列出现过的所有单词生成一份清单。 alter table tablename add fulltext(column1,column2) 说明: 只能在

Mysql全文索引一种特殊的索引,它会把某个数据表的某个数据列出现过的所有单词生成一份清单。

alter table tablename add fulltext(column1,column2)

说明:

只能在MyISAM数据表中创建

全文索引是以空格或标点隔开才能搜到的,搜中文是搜不到(有专门的应用支持中文分词可以搜中文,但都不理想)

少于3个字符的单词不会被包含在全文索引里,可以通过修改my.cnf修改选项

ft_min_Word_len=3

重新启动mysql服务器,用repair table tablename quick 为有关数据表重新生成全文索引


select * from tablename where match(column1,column2) against('word1 word2 word3')>0.001

match ... against 把column1,column2数据列中至少包含word1,word2,word3三个单词之一的数据记录查找到,在关键字match后的数据列必须 跟创建全文索引的数据列相同,检索词不区分大小写和先后顺序,少于3个字符的单词通常被忽略。match... against ...表达式返回一个浮点数作为它本身的求值结果,这个数字反映了结果记录与被检索单词的匹配程度。如果没有匹配到任何记录,或者匹配到的结果记录太多反 而被忽略,表达式将返回0,表达式>0.001的作用是排除match的返回值太小的结果记录。


select *,match(column1,column2) against ('word1 word2 word3') as mtch
from tablename
having mtch>0.01
order by mtch desc
limit 5

找出最匹配的5条记录,在where字句中不能使用假名,所以用having

布尔全文搜索的性能支持以下操作符:

+word:一个前导的加号表示该单词必须 出现在返回的每一行的开头位置。

-word: 一个前导的减号表示该单词一定不能出现在任何返回的行中。

(无操作符):在默认状态下(当没有指定 + 或?的情况下),该单词可有可无,但含有该单词的行等级较高。这和MATCH() ... AGAINST()不使用IN BOOLEAN MODE修改程序时的运作很类似。

> <这两个操作符用来改变一个单词对赋予某一行的相关值的影响。 > 操作符增强其影响,而 <操作符则减弱其影响。请参见下面的例子。

( )括号用来将单词分成子表达式。括入括号的部分可以被嵌套。

~word:一个前导的代字号用作否定符, 用来否定单词对该行相关性的影响。 这对于标记“noise(无用信息)”的单词很有用。包含这类单词的行较其它行等级低。

word* :搜索以word开头的单词,只允许出现在单词的末尾

"word1 word" :给定单词必须出现在数据记录中,先后顺序也必须匹配,区分字母大小写


select * from tablename where match(column1,column2) against ('+word1 +word2 -word3' in boolean mode')

布尔检索只能返回1或者0,不再返回表示匹配程度的浮点数

全文索引的缺陷:

数据表越大,全文索引效果好,比较小的数据表会返回一些难以理解的结果。

全文检索以整个单词作为匹配对象,单词变形(加上后缀,复数形式),就被认为另一个单词。

只有由字母,数字,单引号,下划线构成的字符串被认为是单词,带注音符号的字母仍是字母,像c++不再认为是单词

不区分大小写

只能在MyISAM上使用

全文索引创建速度慢,而且对有全文索引的各种数据修改操作也慢

不支持中文

以上就是Mysql 全文索引的原理与缺陷的详细内容,更多关于MySQL 全文索引的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 全文索引的原理与缺陷

本文链接: https://www.lsjlt.com/news/10028.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql全文索引实现的原理是什么
    MySQL全文索引实现的原理主要是利用倒排索引和自然语言处理技术。具体步骤如下: 创建全文索引:在创建表时,可以为需要进行全文检...
    99+
    2024-04-18
    mysql
  • mysql 全文索引
    停止词(stopword) ...
    99+
    2024-04-02
  • Mysql全文索引
    1.背景简介 项目开发过程有时候会遇到全文检索的需求,但是数据量有时候比较小,不属于高并发高吞吐场景,这种场景搭建ES服务有点浪费资源,也把工程设计复杂了,所以需要采用更简单更廉价的方案。一般业务系统都会用到Mysql或者PostgreSQ...
    99+
    2023-08-18
    mysql 数据库 全文检索
  • Android View.Post 的原理及缺陷
    目录一、View.post(Runnable) 1、AttachInfo 2、HandlerActionQueue 二、Handler.post(Runnable) 三、onCrea...
    99+
    2024-04-02
  • MySQL自适应哈希索引的特点和缺陷有哪些
    这篇文章主要讲解了“MySQL自适应哈希索引的特点和缺陷有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL自适应哈希索引的特点和缺陷有哪些”吧!...
    99+
    2024-04-02
  • mysql索引的工作原理
    小编给大家分享一下mysql索引的工作原理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL中索引的简介在MySQL中,索...
    99+
    2024-04-02
  • PHP与MySQL索引的原理及优化方法
    引言:在开发和维护一个功能强大的数据库应用程序时,索引是一个重要的概念,它可以显著提高数据库查询的效率。本文将介绍PHP与MySQL索引的原理和优化方法,并提供一些具体的代码示例。一、索引的原理索引是一种数据结构,它可以帮助数据库引擎快速定...
    99+
    2023-10-21
    PHP 优化方法 MySQL索引
  • MySQL索引失效原理
    目录1、索引失效原因2、再来看看哪些情况会破坏索引的有序性。 - 对索引字段做函数操作 - 隐式类型转换 - 隐式字符编码转换 3、总结 1、索引失效原因 首先看看哪些情况下,将会导...
    99+
    2024-04-02
  • mysql全文索引怎么用
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-16
  • MySQL的索引原理是什么
    本篇内容介绍了“MySQL的索引原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、索引的本质索引...
    99+
    2024-04-02
  • MySQL索引的原理是什么
    本篇内容介绍了“MySQL索引的原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!索引,可能让好很多...
    99+
    2024-04-02
  • MySQL索引的原理与优化策略是什么
    这篇文章主要介绍了MySQL索引的原理与优化策略是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL索引的原理与优化策略是什么文章都会有所收获,下面我们一起来看看吧。索引的概念MySQL索引是一种用于...
    99+
    2023-07-05
  • 如何理解MySQL索引原理
    本篇内容主要讲解“如何理解MySQL索引原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解MySQL索引原理”吧!案例背景假设面试官问你:在电商平台的订...
    99+
    2024-04-02
  • MySQL索引原理是什么
    这篇文章主要介绍MySQL索引原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!摘要: 就一起来聊一聊MySQL索引。 什么是索引? 百度百科是这样描述的: 索引是为来加速对表...
    99+
    2024-04-02
  • MongoDB的文本搜索与全文索引怎么实现
    MongoDB中的文本搜索和全文索引可以通过创建文本索引来实现。文本索引可以帮助MongoDB在文本字段上执行全文搜索,以查找包含特...
    99+
    2024-05-07
    MongoDB
  • Mysql索引的实现原理分析
    本篇文章为大家展示了Mysql索引的实现原理分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  一:Mysql原理与慢查询  MySQL凭借着出色的性能、低廉的成...
    99+
    2024-04-02
  • MySQL中索引的原理是什么
    这期内容当中小编将会给大家带来有关MySQL中索引的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。索引目的索引的目的在于提高查询效率,可以类比字典,如果要查“m...
    99+
    2024-04-02
  • PHP与MySQL索引的原理和底层实现细节
    MySQL是一种非常流行的关系型数据库管理系统,而PHP是一种广泛用于开发Web应用程序的服务器端脚本语言。在开发Web应用程序时,经常需要与数据库进行交互,而索引是提高数据库查询性能的重要机制之一。本文将介绍PHP与MySQL索引的原理和...
    99+
    2023-10-21
    PHP MySQL索引 底层实现细节
  • MySQL---单列索引(包括普通索引、唯一索引、主键索引)、组合索引、全文索引。
    1. 索引 索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索 引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的 时间就越多,如果表中查询的列有一个索引,MySQL...
    99+
    2023-09-21
    数据库 mysql sql
  • MySQL索引的理解学习,面试不问索引原理就是事务原理
    目录 MySQL执行SQL的整体流程 引言, MySQL索引底层学习原因 磁盘介绍(理解磁盘IO) 索引底层数据结构B+树 B+树(聚集索引) B+树(辅助索引) 思考一下为何使用B+树结构, 不是B树, 不是平衡树二叉树,红黑树? 索引总...
    99+
    2023-09-28
    面试 学习 mysql 索引
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作