MySQL中一般使用“LIKE”關鍵字進行模糊查詢,但是在大數據量的情況下,“LIKE”會造成查詢效率不足,導致查詢速度慢。此時,我們可以使用以下幾種方法來代替“LIKE”查詢。
1. 全文檢索 全文檢索是基于自然語言的搜索技術,在MySQL中我們可以通過全文索引來實現全文檢索。 全文索引會忽略掉一些無意義的詞,比如“的”、“是”等,在查詢的時候只會索引有意義的詞,所以能夠提高查詢效率。 例如: CREATE TABLE article ( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR(200) NOT NULL, content TEXT NOT NULL, FULLTEXT(title, content) ); SELECT * FROM article WHERE MATCH(title,content) AGAINST('關鍵字'); 2. 使用正則表達式 正則表達式也是一種高效的模糊查詢方式,使用正則表達式進行查詢可以把查詢語句的耗時大大降低。 例如: SELECT * FROM article WHERE title REGEXP '^關鍵字' OR content REGEXP '關鍵字$'; 3. 倒排索引 倒排索引也是一種高效的搜索方式,倒排索引是指根據詞頻率來建立索引,使用倒排索引可以避免很多無謂的掃描,減少查詢時間。 例如: SELECT aid FROM words WHERE word = '關鍵字'; 4. 使用桶排序 桶排序是將數據劃分成幾個不同的區間,然后每個區間有一個桶,將數據按照規則放到對應的桶里面,然后再逐個桶查找匹配值即可。這種方式速度非常快,適用于大數據量的模糊查詢。 例如: SELECT * FROM article WHERE title LIKE '關鍵字%' UNION SELECT * FROM article WHERE content LIKE '關鍵字%';
上一篇html 行距怎么設置
下一篇靠左不動按鈕css