在MySQL中,校对规则(Collation)是一种用于比较和排序字符集的算法,用于确定字符串的排序顺序以及在执行各种字符串比较时如何比较字符串的规则。_ci是校对规则的一个后缀,表示在比较字符串时要忽略大小写。
在utf8mb4_unicode_ci校对规则中,_ci表示它是大小写不敏感的。底层原理是它使用了Unicode Collation Algorithm(UCA)来进行排序和比较,该算法将字符映射到Unicode标准中的对应位置,并对字符进行比较,然后根据字符的权重排序。对于_ci后缀,UCA将使用一种称为基本级别的比较方法,其中字母大小写被视为相等,因此会忽略大小写进行比较。