日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > [置頂] 數據庫調優教程(十) 【精華章節】解決like ’%str’ 時索引不被使用的4種方法

[置頂] 數據庫調優教程(十) 【精華章節】解決like ’%str’ 時索引不被使用的4種方法

來源:程序員人生   發布時間:2015-04-20 08:28:27 閱讀次數:3783次

3、           索引


7.      解決like’%str’不使用模糊查詢的4種方法


上1講最后說了,只要模糊查詢的模糊值在字符串前面,則不會使用索引,‘%aaa’和‘_aaa’都不會!

以下


應當說這是Mysql給程序員們開的1個玩笑。要是我的表數據量很大,而且又需要使用like’%%’這樣的模糊查詢來檢索時,該怎樣辦??

接下來,筆者將會給大家分享解決這個問題的4種方法


1)    Select主鍵

只要Select的字段恰好是主鍵,那末就會使用到索引(只對innodb數據庫有效)

比以下面的

select idfrom emp where ename like '%haha%'G

就使用了索引


select * from empwhere ename like '%haha%'G

則不使用索引



除主鍵,其他字段必須設置為覆蓋索引才能使索引生效,不能單獨設置索引

比以下面這類是不會使用索引的


可以采取分步查詢的方法,先select主鍵再利用主鍵去找其他字段。不過好像比較麻煩!別怕!接下來會講1種最優方法――覆蓋索引法!


2)    覆蓋索引法

覆蓋索引是1種特殊的多列索引,當多列索引指向1個查詢語句中所有的字段時,該多列索引就被稱為覆蓋索引。

使用覆蓋索引可以解決問題!

創建覆蓋索引


固然,如果你想要select很多字段乃至是select*,那你可以創建1個多列索引指向所有字段(innodb可以不指向主鍵)



注意:

筆者發現,當覆蓋索引指向的字段是varchar(380)及380以上的字段時,覆蓋索引會失效!

 

3)    全文索引法

此方法有較大局限。

全文索引,只對MyISAM引擎有用。主要是針對對文件,文本的檢索, 比如文章或段落,.

它會把某個數據表的某個數據列出現過的所有單詞生成1份清單

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

ft_min_word_len=3

但是!

全文索引不完全同等于模糊查詢

比如title字段有這么個數據’abcd20088ccaa’,使用模糊查詢select * from articles wheretitle like’%2008%’可以查找到,而使用全文檢索select * from articles where match(title) against(‘2008’);是檢索不到的,由于2008不是1個單詞!

 

4)    使用全文檢索引擎工具包

采取lucene、Sphinx、solr等專門的全文檢索開源工具可以檢索某段字符串。



本章結束,下1章將回歸數據庫的開起源頭――設計好1張表。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久福利一牛影视 | 日韩美女一区 | 超碰在线97国产 | 男女爱爱免费视频 | 国产一区二区在线播放 | 一级性 | 人人爽人人爽 | 日韩精品一区二区三区在线播放 | 久久久二区 | 欧美日韩福利 | av大全在线免费观看 | 亚洲欧美bt | 色在线播放 | 亚洲h网站 | 久久国产精品毛片 | 日韩视频区 | 玖玖在线 | 久久久在线免费观看 | 久久综合久久久 | 亚洲毛片一区 | 黄色a级网站 | 成人1区2区| 动漫毛片 | 成人污视频 | 热久久久 | 国产精品久久一区二区三区动漫 | 色综合欧美| 日韩看片 | 不卡精品视频 | 国产视频不卡 | 欧美日韩国产在线 | 国产不卡视频一区二区三区 | 一级黄色免费看 | 中文字幕自拍 | 69精品久久| 99热在线观看| 国产日韩亚洲 | 国产精品久久久久久a | 国产一区二区毛片 | 午夜精| 久久久久久毛片免费看 |