utf8mb4_general_ci和utf8mb4_unicode_ci区别

  先说结论:utf8mb4_general_ci排序速度快,utf8mb4_unicode_ci排序更精确。
 
  utf8mb4_unicode_ci基于标准Unicode排序,所以排序结果很精确,但是为了能够处理特殊字符,采用了稍微复杂的排序算法,所以排序速度也会稍慢。
 
  utf8mb4_general_ci不是基于标准Unicode来排序,所以在对某些语言(如德语、法语、俄语等)或者特殊字符进行排序时可能不是那么准确,但是由于它的排序算法简单,所以排序速度更快。
 
  一般来说无脑选择utf8mb4_unicode_ci即可,特别是保存用户输入的文本内容(如昵称、签名等),用户可能会输入火星文、emoji等各种稀奇古怪的字符,使用utf8mb4_unicode_ci能最大限度地解决字符编码问题。
 
  如果数据库需要保存各国文字或各种稀奇古怪的特殊字符,还可以使用utf8mb4_unicode_520_ci排序规则。
 
  重要提醒:不管用什么字符集和排序规则,设计数据表时应使保持统一,因为联表查询时如果关联字段的字符集和排序规则不一致可能会出错。

Copyright © 2024 码农人生. All Rights Reserved