MySQL是目前世界上使用最廣泛的開源關系型數據庫管理系統,其版本升級速度非常快,其中MySQL5.7是最受歡迎的版本之一。在實際項目中,like模糊查詢是非常常見的查詢方式,但是因為它的匹配規則較復雜,在大數據查詢時可能會影響查詢效率。那么我們該如何優化MySQL5.7的like模糊查詢呢?以下是一些可供參考的方法。
SELECT * FROM goods WHERE goods_name LIKE '%abc%';
1.使用全文索引
MySQL5.7內置了全文索引功能,可以提高模糊查詢效率。可加在VARCHAR和TEXT類型上,將特定的文字和它們在文本中的位置進行索引。使用全文索引需要先創建FULLTEXT索引,具體代碼如下:
ALTER TABLE goods ADD FULLTEXT(goods_name);
然后就可以進行優化查詢,代碼如下:
SELECT * FROM goods WHERE MATCH(goods_name) AGAINST('abc');
2.使用前綴查詢
前綴查詢是指對搜索關鍵字的前綴進行匹配,如%abc。如果關鍵字范圍較小,可以選擇使用前綴查詢來提高效率。代碼如下:
SELECT * FROM goods WHERE goods_name LIKE 'abc%';
3.使用索引
為待查詢的字段創建索引,可以大幅提高查詢效率。但是索引也存在一些缺點,比如會增加記錄的存儲空間;索引列的順序對效果有影響等。因此需要針對具體情況進行優化。代碼如下:
CREATE INDEX idx_goods_name ON goods(goods_name); SELECT * FROM goods WHERE goods_name LIKE '%abc%';
4.盡量避免使用not like和‘%’開頭
not like和‘%’開頭查詢會全表掃描,影響查詢效率。如果可以避免使用,就盡量不要使用。
以上就是優化MySQL5.7 like模糊查詢的一些方法,需要結合具體情況進行優化,選擇最合適的方法。優化查詢可以提高系統運行效率,減小系統負載,提高系統的穩定性。