在Mysql中存儲中文字符是一個非常普遍的需求,但是需要更多的操作和注意事項。在Mysql中包含了多種中文字符類型,我們需要選擇最適合自己的。接下來我們對這些類型進行詳細介紹。
CREATE TABLE `test` ( `id` INT(11) , `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, `info` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, )CHARACTER SET=utf8mb4;
字符集 collation 的選擇不僅僅是用來顯示數據,也會直接影響數據的存儲,查詢和比較等等。常用的字符集和排序規則如下:
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci CHARACTER SET utf8mb4 COLLATE utf8mb4_bin CHARACTER SET gbk COLLATE gbk_chinese_ci
排序規則的選擇依據實際中文的情況進行選擇。如普通的比較使用 utf8mb4_general_ci,對語言的變音或者拼音的需求可以使用 utf8mb4_unicode_ci。
MySQL的 MYISAM 和 InnoDB 存儲引擎都支持 FULLTEXT 索引來優化全文搜索;MyISAM 還支持壓縮表,這可能會降低訪問磁盤的頻率,提高查詢的速度。
ALTER TABLE `test` ADD FULLTEXT KEY `name_info` (`name`,`info`) WITH PARSER ngram;
如上,建議使用 utf8mb4 來存儲和排序中文,同時使用 MyISAM 存儲引擎和 FULLTEXT 索引來進行隨意文本的搜索操作。
上一篇html5個人主頁源代碼
下一篇mysql中文字符不顯示