第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何加快SELECT ..LIKE查詢在MySQL中的多列?

如何加快SELECT ..LIKE查詢在MySQL中的多列?

慕田峪4524236 2019-12-27 15:25:04
我有一個MySQL表,對此SELECT x, y, z FROM table WHERE x LIKE '%text%' OR y LIKE '%text%' OR z LIKE '%text%'查詢非常頻繁。任何索引都可以幫助加快速度嗎?表中有幾百萬條記錄。如果有什么方法可以加快搜索速度,是否會嚴(yán)重影響數(shù)據(jù)庫文件對磁盤的使用以及INSERTand DELETE語句的速度?(UPDATE從未執(zhí)行過)更新:發(fā)布后,我很快就看到了很多有關(guān)LIKE查詢中使用方法的信息和討論;我想指出,該解決方案必須使用LIKE '%text%'(也就是說,我要查找的文本在前面加上%通配符)。由于多種原因,包括安全性,數(shù)據(jù)庫也必須是本地的。
查看完整描述

3 回答

?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊

索引無法幫助文本與前導(dǎo)通配符匹配,索引可用于:


LIKE 'text%'

但是我猜這不會削減。對于這種類型的查詢,如果要擴(kuò)展可搜索的記錄數(shù)量,則確實應(yīng)該尋找全文搜索提供商。我首選的提供商是Sphinx,功能非常全/快速等。Lucene可能也值得一看。MyISAM表上的全文索引也可以使用,但是最終對于具有大量寫操作的任何數(shù)據(jù)庫追求MyISAM并不是一個好主意。


查看完整回答
反對 回復(fù) 2019-12-27
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊

我要補(bǔ)充一點(diǎn),在某些情況下,如果您正在查看的字段通常為空或包含常量,則可以使用索引以及l(fā)ike / rlike來加快查詢速度。

在那種情況下,您似乎可以通過添加帶有固定值的“ and”子句來限制使用索引訪問的行。

我嘗試過在一個通常不包含很多標(biāo)簽的巨大表格中搜索“標(biāo)簽”。

SELECT * FROM objects WHERE tags RLIKE("((^|,)tag(,|$))" AND tags!=''

如果您在標(biāo)簽上有一個索引,則會看到它用于限制正在搜索的行。


查看完整回答
反對 回復(fù) 2019-12-27
  • 3 回答
  • 0 關(guān)注
  • 721 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號