欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL 全文索引的原理與缺陷

 更新時間:2020年12月09日 11:15:43   作者:袁志蒙  
這篇文章主要介紹了MySQL 全文索引的原理與缺陷,幫助大家更好的理解和使用MySQL中的索引,感興趣的朋友可以了解下

MySQL全文索引一種特殊的索引,它會把某個數(shù)據表的某個數(shù)據列出現(xiàn)過的所有單詞生成一份清單。

alter table tablename add fulltext(column1,column2)

說明:

只能在MyISAM數(shù)據表中創(chuàng)建

全文索引是以空格或標點隔開才能搜到的,搜中文是搜不到(有專門的應用支持中文分詞可以搜中文,但都不理想)

少于3個字符的單詞不會被包含在全文索引里,可以通過修改my.cnf修改選項

ft_min_word_len=3

重新啟動MySQL服務器,用repair table tablename quick 為有關數(shù)據表重新生成全文索引

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

match ... against 把column1,column2數(shù)據列中至少包含word1,word2,word3三個單詞之一的數(shù)據記錄查找到,在關鍵字match后的數(shù)據列必須 跟創(chuàng)建全文索引的數(shù)據列相同,檢索詞不區(qū)分大小寫和先后順序,少于3個字符的單詞通常被忽略。match... against ...表達式返回一個浮點數(shù)作為它本身的求值結果,這個數(shù)字反映了結果記錄與被檢索單詞的匹配程度。如果沒有匹配到任何記錄,或者匹配到的結果記錄太多反 而被忽略,表達式將返回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:一個前導的加號表示該單詞必須 出現(xiàn)在返回的每一行的開頭位置。

-word: 一個前導的減號表示該單詞一定不能出現(xiàn)在任何返回的行中。

(無操作符):在默認狀態(tài)下(當沒有指定 + 或–的情況下),該單詞可有可無,但含有該單詞的行等級較高。這和MATCH() ... AGAINST()不使用IN BOOLEAN MODE修改程序時的運作很類似。

> <這兩個操作符用來改變一個單詞對賦予某一行的相關值的影響。 > 操作符增強其影響,而 <操作符則減弱其影響。請參見下面的例子。

( )括號用來將單詞分成子表達式。括入括號的部分可以被嵌套。

~word:一個前導的代字號用作否定符, 用來否定單詞對該行相關性的影響。 這對于標記“noise(無用信息)”的單詞很有用。包含這類單詞的行較其它行等級低。

word* :搜索以word開頭的單詞,只允許出現(xiàn)在單詞的末尾

"word1 word" :給定單詞必須出現(xiàn)在數(shù)據記錄中,先后順序也必須匹配,區(qū)分字母大小寫

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

布爾檢索只能返回1或者0,不再返回表示匹配程度的浮點數(shù)

全文索引的缺陷:

1.數(shù)據表越大,全文索引效果好,比較小的數(shù)據表會返回一些難以理解的結果。

2.全文檢索以整個單詞作為匹配對象,單詞變形(加上后綴,復數(shù)形式),就被認為另一個單詞。

3.只有由字母,數(shù)字,單引號,下劃線構成的字符串被認為是單詞,帶注音符號的字母仍是字母,像C++不再認為是單詞

4.不區(qū)分大小寫

5.只能在MyISAM上使用

6.全文索引創(chuàng)建速度慢,而且對有全文索引的各種數(shù)據修改操作也慢

7.不支持中文

以上就是MySQL 全文索引的原理與缺陷的詳細內容,更多關于MySQL 全文索引的資料請關注腳本之家其它相關文章!

相關文章

  • MySQL InnoDB 鎖的相關總結

    MySQL InnoDB 鎖的相關總結

    這篇文章主要介紹了MySQL InnoDB 鎖的相關知識總結,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-02-02
  • mysql like查詢字符串示例語句

    mysql like查詢字符串示例語句

    在mysql中如果我們要模糊查詢數(shù)據我們可以使用like帶%%號來實現(xiàn)查詢,下面我來簡單的介紹一下關于mysql like使用方法
    2013-10-10
  • MySQL中的數(shù)據加密解密安全技術教程

    MySQL中的數(shù)據加密解密安全技術教程

    在數(shù)據庫應用程序中,數(shù)據的安全性是至關重要的,MySQL作為一種常用的關系型數(shù)據庫管理系統(tǒng),也提供了一些數(shù)據加密和解密的技巧來保護敏感數(shù)據的安全性,為了保護敏感數(shù)據免受未經授權的訪問,我們可以使用加密和解密技術
    2024-01-01
  • MySQL遞歸sql語句WITH表達式實現(xiàn)方法代碼

    MySQL遞歸sql語句WITH表達式實現(xiàn)方法代碼

    SQL遞歸查詢語句是指通過遞歸方式對數(shù)據進行查詢的語句,下面這篇文章主要給大家介紹了關于MySQL遞歸sql語句WITH表達式實現(xiàn)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • MySQL報錯1040'Too?many?connections'的原因以及解決方案

    MySQL報錯1040'Too?many?connections'的原因以及解決方案

    這篇文章主要給大家介紹了關于MySQL報錯1040'Too?many?connections'的原因以及解決方案,文中通過實例代碼以及圖文介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • AlmaLinux 9 安裝 MySQL 8.0.32的詳細過程

    AlmaLinux 9 安裝 MySQL 8.0.32的詳細過程

    這篇文章主要介紹了AlmaLinux 9 安裝 MySQL 8.0.32的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • MySQL備份與恢復之冷備(1)

    MySQL備份與恢復之冷備(1)

    這篇文章主要介紹了MySQL備份與恢復之冷備,冷備一般需要定制計劃,比如什么時候做備份,每次對哪些數(shù)據進行備份等等,對冷備感興趣的小伙伴們可以參考一下
    2015-08-08
  • MySQL的查詢緩存機制基本學習教程

    MySQL的查詢緩存機制基本學習教程

    這篇文章主要介紹了MySQL的查詢緩存機制基本學習教程,默認針對InnoDB存儲引擎下來將,需要的朋友可以參考下
    2015-11-11
  • mysql 循環(huán)批量插入的實例代碼詳解

    mysql 循環(huán)批量插入的實例代碼詳解

    本文通過實例代碼文字相結合的形式給大家介紹了mysql 循環(huán)批量插入功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • mysql中獲取一天、一周、一月時間數(shù)據的各種sql語句寫法

    mysql中獲取一天、一周、一月時間數(shù)據的各種sql語句寫法

    今天抽時間整理了一篇mysql中與天、周、月有關的時間數(shù)據的sql語句的各種寫法,部分是收集資料,全部手工整理,自己學習的同時,分享給大家,并首先默認創(chuàng)建一個表、插入2條數(shù)據,便于部分數(shù)據的測試,其中部分名詞或函數(shù)進行了解釋說明。直入主題
    2014-05-05

最新評論