在mysql5.7中,支持對中文進行索引,可以提高對于中文文字的搜索效率。
首先需要在創建表時對中文字段加上索引:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100), address VARCHAR(200), PRIMARY KEY(id), INDEX(name), FULLTEXT(address) ) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;
在上面的代碼中,我們對name字段加上了普通索引,對address字段加上了全文索引。
在進行中文搜索時,需要使用utf8mb4字符集和utf8mb4_unicode_ci字符集校對規則:
SELECT * FROM myTable WHERE name='張三' COLLATE utf8mb4_unicode_ci;
上面的代碼中,我們使用了COLLATE關鍵字來指定字符集校對規則。
需要注意的是,在對包含中文的字段進行索引時,需要將字符類型的長度進行調整,使得每個字符都能夠正確地被索引:
ALTER TABLE myTable MODIFY COLUMN name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE myTable MODIFY COLUMN address VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
在使用mysql5.7進行中文搜索時,需要注意以上幾點,以確保索引的準確性和搜索的效率。