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

mysql對(duì)于模糊查詢like的一些匯總

 更新時(shí)間:2020年10月18日 08:31:08   作者:槐月十九  
這篇文章主要給大家介紹了關(guān)于mysql對(duì)于模糊查詢like的一些匯總,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、常見用法:

(1)搭配%使用

%代表一個(gè)或多個(gè)字符的通配符,譬如查詢字段name中以大開頭的數(shù)據(jù):

(2)搭配_使用

_代表僅僅一個(gè)字符的通配符,把上面那條查詢語句中的%改為_,會(huì)發(fā)現(xiàn)只能查詢出下面一條數(shù)據(jù):

2、使用like模糊查詢會(huì)導(dǎo)致索引失效,在數(shù)據(jù)量大的時(shí)候會(huì)有性能問題

(1)盡量少以%或者_(dá)開頭進(jìn)行模糊查詢

通過explain執(zhí)行計(jì)劃,我們發(fā)現(xiàn),使用like模糊查詢時(shí),如果不以%和_開頭查詢的話,索引還是有效的

以%或者_(dá)開頭查詢,索引失效

(2)使用覆蓋索引

當(dāng)查詢的的條件和查詢的結(jié)果都是索引中的字段的時(shí)候,這個(gè)索引我們可以稱之為覆蓋索引,這個(gè)時(shí)候,使用like模糊查詢索引是有效的

InnoDB中主鍵可以不添加進(jìn)索引中

注意:使用覆蓋索引,對(duì)于字段的長(zhǎng)度是由要求限制的,一般超過長(zhǎng)度,索引也會(huì)失效

這里如果我查詢中帶有descripition字段,則覆蓋索引也會(huì)失效(我這里的數(shù)據(jù)庫經(jīng)過測(cè)試最多只支持255長(zhǎng)度的字段)

(3)使用全文索引

給字段建立Full Text索引,然后使用match(...) against(...)進(jìn)行檢索

注意:這種全文索引方式只對(duì)英文單詞起作用,對(duì)于中文漢字支持不夠友好,需要額外去mysql的配置文件做一些配置修改,讓它額外支持中文

(4)使用一些額外的全文搜索引擎來解決

Lucene,solr,elasticsearch等等

基本原理是:把mysql配置文件中的ft_min_word_len=3改為1。(沒有這項(xiàng)就直接添加),然后新建一個(gè)字段來保持分詞結(jié)果,給這個(gè)字段建立全文索引。然后實(shí)現(xiàn)一個(gè)分詞模塊,把詞語“大家好”拆分為“大 大家 大家好 家 家好 好”。然后用match .. against 來代替like %%,查詢出來的結(jié)果跟like的結(jié)果基本相同(如果分詞合理的話),但是效率比like高至少10倍以上。

總結(jié)

到此這篇關(guān)于mysql對(duì)于模糊查詢like的文章就介紹到這了,更多相關(guān)mysql模糊查詢like內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 多次執(zhí)行mysql_fetch_array()的指針歸位問題探討

    多次執(zhí)行mysql_fetch_array()的指針歸位問題探討

    多次執(zhí)行mysql_fetch_array(),在第二次執(zhí)行的時(shí)候,如果不加處理,就不會(huì)輸出任何內(nèi)容,這種情況下只需要對(duì)循環(huán)指針進(jìn)行復(fù)位即可,感興趣的朋友可以了解下啊,或許對(duì)你有所幫助
    2013-01-01
  • MySQL 不用存儲(chǔ)過程循環(huán)插入數(shù)據(jù)的方法

    MySQL 不用存儲(chǔ)過程循環(huán)插入數(shù)據(jù)的方法

    在MySQL中,使用INSERT INTO VALUES語句可以一次性插入多行數(shù)據(jù),提高插入效率,還可通過Python的pymysql庫生成和執(zhí)行插入語句,這不僅減少了操作時(shí)間,還提高了代碼的簡(jiǎn)潔性和執(zhí)行效率
    2024-09-09
  • MySQL壓測(cè)工具mysqlslap的介紹與使用

    MySQL壓測(cè)工具mysqlslap的介紹與使用

    mysqlslap是mysql自帶的一個(gè)性能壓測(cè)工具,mysqlslap用于和其它的一些性能壓測(cè)工具一樣可以自己造數(shù)據(jù)進(jìn)行壓測(cè)。mysqlslap的報(bào)告比較簡(jiǎn)單主要體現(xiàn)在執(zhí)行的時(shí)間方面,沒有sysbench那樣的tps、qps等更詳細(xì)的包括。下面來一起看看關(guān)于mysqlslap的介紹和簡(jiǎn)單的使用示例。
    2016-09-09
  • mysql學(xué)習(xí)筆記之幫助文檔

    mysql學(xué)習(xí)筆記之幫助文檔

    本文給大家詳細(xì)講述的是mysql的help(幫助)命令的用法,非常細(xì)致,有需要的小伙伴可以來參考下
    2017-02-02
  • ubuntu安裝mysql數(shù)據(jù)庫方法

    ubuntu安裝mysql數(shù)據(jù)庫方法

    ubuntu基于linux的免費(fèi)開源桌面PC操作系統(tǒng),十分契合英特爾的超極本定位,支持x86、64位和ppc架構(gòu)。這篇文章給大家介紹ubuntu安裝mysql數(shù)據(jù)庫方法,非常不錯(cuò),需要的朋友參考下吧
    2019-08-08
  • Mysql8報(bào)錯(cuò)this is incompatible with sql_mode=only_full_group_by問題

    Mysql8報(bào)錯(cuò)this is incompatible with sql_mo

    這篇文章主要介紹了Mysql8報(bào)錯(cuò)this is incompatible with sql_mode=only_full_group_by問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • MSSQL 添加字段說明

    MSSQL 添加字段說明

    MSSQL 字段添加方法。
    2009-05-05
  • 低版本Druid連接池+MySQL驅(qū)動(dòng)8.0導(dǎo)致線程阻塞、性能受限

    低版本Druid連接池+MySQL驅(qū)動(dòng)8.0導(dǎo)致線程阻塞、性能受限

    應(yīng)用升級(jí)MySQL驅(qū)動(dòng)8.0后,在并發(fā)量較高時(shí),查看監(jiān)控打點(diǎn),Druid連接池拿到連接并執(zhí)行SQL的時(shí)間大部分都超過200ms,本文就解決一下這個(gè)問題
    2021-07-07
  • MySQL?with語句講解

    MySQL?with語句講解

    這篇文章主要介紹了MySQL?with語句小結(jié),對(duì)于邏輯復(fù)雜的sql,with可以大大減少臨時(shí)表的數(shù)量,提升代碼的可讀性、可維護(hù)性,對(duì)mysql?with語句相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-11-11
  • Mysql 存儲(chǔ)過程中使用游標(biāo)循環(huán)讀取臨時(shí)表

    Mysql 存儲(chǔ)過程中使用游標(biāo)循環(huán)讀取臨時(shí)表

    這篇文章主要介紹了Mysql 存儲(chǔ)過程中使用游標(biāo)循環(huán)讀取臨時(shí)表的方法,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論