社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

定义MySQL索引

Petras • 7 年前 • 1940 次点击  
  1. 什么是索引?
  2. 什么是全文?

我知道这两个问题的答案,但我不能准确地向面试官透露这些答案:

  • 索引的意思类似于书中的索引。
  • 全文表示搜索字符串

请给我每个问题的简单定义好吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30350
文章 [ 3 ]  |  最新文章 7 年前
kiwicptn
Reply   •   1 楼
kiwicptn    16 年前
  1. 索引意味着,与正在索引的数据一起,有一种以有效方式获取数据的方法。这个快捷方式是一个B-树。索引列的读取速度更快(已经解释过),但写入速度较慢,因为必须更新B树。
Alex Weinstein
Reply   •   2 楼
Alex Weinstein    16 年前

标引 ,是创建索引的过程。索引是允许SQL(或更通常是DBMS或搜索引擎)定位的结构, 以非常有效的方式 ,基于其中一个(或多个)字段的值的记录。

例如,一个数据库可能包含在包含学生记录的表中,包括他们的学生ID、他们的姓名、出生日期、电话号码…通过在电话号码上创建索引,我们可以根据电话号码搜索学生。在没有索引的情况下,系统会找到相同的记录,但通过查看每个记录并与所需的电话号码进行比较,可以执行此操作。


全文索引 为一个(或多个包含文本的字段)创建索引的过程。与基于将字段的完整值(或可能是简单的正则表达式)与所需搜索值进行比较的常规索引不同,全文索引可以基于字段中找到的单词来定位记录。

例如,书目数据库可能包含描述书籍的记录,其中包含ISBN、作者、标题、类型、价格等字段。一个全文索引(有时称为“目录”)上的字段标题,将允许有效地定位,书名为“老人和海洋”时,说“人”。

全文引擎通常具有与文本相关的语言概念的内置和可参数化“理解”。例如,“干扰词”(也称为“停止词”)是文本中经常出现的词(例如英语中的“the”、“and”、“of”、“in”),为了最小化索引大小并使使用更具选择性的词的搜索更有效,可以忽略。此外,全文引擎还可以了解单词的各种语法形式,比如单词的单数和复数形式(比如英寸和英寸、脚和脚、猫和猫),或者动词的连词(比如catch、catch和catch,或者口译、口译、口译)。得益于这种语法意识,全文引擎可以(如果如此指示)定位单词,即使它们不完全匹配搜索条件。
全文引擎通常还公开搜索语言/语法,允许用户指定所需搜索的特定元素。例如,在“人”的5个字内搜索“海”。或者找到“湖”或“海”以及“水”等词。

James
Reply   •   3 楼
James    16 年前

MySQL中的索引是从一列中的每个值(或一组列中的值)到该列中包含该值的行(或该组列中的值)的映射。

列上的全文索引是从每个单词(通常用空格分隔)到包含该单词的行集的映射。

正常指数: 身份证:1“吧” 身份证:2“福奥巴兹”

搜索“foo”-无结果。 搜索“foo baz”->行,ID:2 搜索“栏”->ID为1的行

全文索引: 身份证:1“吧” 身份证:2“福奥巴兹”

搜索“foo”->行,ID:2 搜索“foo baz”->行,ID:2 搜索“栏”->ID为1的行