亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教關(guān)于mysql模糊查詢的優(yōu)化 [打印本頁]

作者: UIRL    時間: 2005-11-29 17:52
標(biāo)題: 請教關(guān)于mysql模糊查詢的優(yōu)化
對于使用 like '%$str%' 或者 INSTR() 進行模糊查詢,有什么好的優(yōu)化方案么?
好像這樣查詢,即使所查詢的字段設(shè)置了索引,也是不能使用的。
作者: hardiwang    時間: 2005-11-29 17:53
關(guān)注ing
作者: yejr    時間: 2005-11-30 12:57
必須用like?
作者: wildlily980    時間: 2005-11-30 14:41
先分詞,然后在分詞上加索引。
作者: flute    時間: 2005-11-30 15:57
分詞?那工程有點大了。
作者: UIRL    時間: 2005-11-30 19:54
原帖由 wildlily980 于 2005-11-30 14:41 發(fā)表
先分詞,然后在分詞上加索引。


這是不現(xiàn)實的。

比如說我要查詢某個字段值中包括 'X' 的記錄,怎么分呢?把標(biāo)題分詞嗎?再用X一個一個去等?

[ 本帖最后由 UIRL 于 2005-11-30 19:56 編輯 ]
作者: UIRL    時間: 2005-11-30 19:55
原帖由 yejr 于 2005-11-30 12:57 發(fā)表
必須用like?


因為是模糊查詢,類似于在一個字段中查詢字段值包括'X'的記錄,除了用LIKE INSTR() , 還有其他的辦法嗎?

我只想到這個,如果有其他的方法,請賜教,非常感謝!
作者: wildlily980    時間: 2005-11-30 23:16
我也希望有更好的辦法
作者: yejr    時間: 2005-12-01 09:09
用正則regexp,速度上會有很大提高,如果有適當(dāng)?shù)乃饕脑,會更好?hr noshade size="2" width="100%" color="#808080"> 作者: UIRL    時間: 2005-12-01 13:03
原帖由 yejr 于 2005-12-1 09:09 發(fā)表
用正則regexp,速度上會有很大提高,如果有適當(dāng)?shù)乃饕脑,會更好?


以前沒有接觸過MYSQL中的正則,測試如下:

1。表CODE中有10173條記錄。
2。為表CODE中字段SUBJECT添加索引。
3。使用EXPLAIN 檢查查詢語句。

結(jié)果如下:

1.JPG (26.1 KB, 下載次數(shù): 97)

查看檢索狀態(tài)

查看檢索狀態(tài)

作者: UIRL    時間: 2005-12-01 13:04
可以看到,SUBJECT的索引并未起作用。
同樣是掃描整個表的。
作者: wildlily980    時間: 2005-12-01 23:06
正則不使用索引。
作者: yejr    時間: 2005-12-02 09:07
原帖由 wildlily980 于 2005-12-1 23:06 發(fā)表
正則不使用索引。


如果該字段沒有索引,當(dāng)然沒法使用了,如果有索引,就會使用索引了。
作者: UIRL    時間: 2005-12-02 10:55
已經(jīng)在字段subject上建立索引后,再進行查詢的。

查詢語句是:select id,subject from code where subject regexp'.*中國.*';
作者: gydoesit    時間: 2005-12-04 13:49
索引只對前字符串的前方起作用,對后面不起作用.
作者: HonestQiao    時間: 2005-12-04 15:48
原帖由 UIRL 于 2005-12-1 13:03 發(fā)表


以前沒有接觸過MYSQL中的正則,測試如下:

1。表CODE中有10173條記錄。
2。為表CODE中字段SUBJECT添加索引。
3。使用EXPLAIN 檢查查詢語句。

結(jié)果如下:



MySQL的正則標(biāo)準(zhǔn)是類似(POSIX 擴展)的。

不過千萬注意要構(gòu)造好正則,否則速度將會大打折扣。
作者: njblue2004    時間: 2005-12-04 18:39
標(biāo)題: 關(guān)注中
我也有同樣的問題
作者: yueliangdao0608    時間: 2007-01-30 11:07
正則一般速度都是比較慢的。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2