高性能的MySQL(7)字符集和校对概述
字符集是指一种从二进制编码到某类字符符号的映射,可以参考如何使用一个字节来表示英文。
校对是指一组用于某个字符集的排序规则。 一、MySQL如何使用字符集 每种字符集都可能有多种校对规则,并且都有一个默认的校对规则,并且每个校对规则只是针对某个字符集,和其他的字符集么有关系。 一定要记住一点:只有基于字符集的值才真正的有字符集的概念。 MySQL的设置可以分为两类: 1、创建对象时的默认值 服务器有默认的字符集和校对规则,数据也有自己的默认值,每个表也有自己的默认值,这个是一个继承的默认设置,最终靠底层的默认设置来影响你创建的对象。 默认情况下: 创建数据库的时候,将根据服务器上的character_set_server设置来设定该数据库的默认字符集。 创建表的时候,根据数据库的设置指定表的字符设置。 创建列的时候,根据表的设置指定列的字符集设置。 只有创建列没有为列指定字符集的时候,表的默认才有用。 2、服务器和客户端通信时的设置。 客户端和服务端通信的时候,可能使用不同的字符集,这时服务器端将必须进行必要的转化。 URL:http://www.bianceng.cn/database/MySQL/201410/46076.htm
二、MySQL如何比较2个字符串的大小 如果比较2个字符串的字符集不同,MySQL会先将其转成同一个字符集再进行比较,如果2个字符集不兼容,则会出错。 Mysql5.0以后的版本会做隐式转换。还可以使用前缀和collate子句来指定字符串的字符集和校对字符集。 这里有一个通用原则可以供我们使用: 先为服务器或者数据库选择一个合理的字符集,然后根据不同的实际情况,让某个列选择自己的字符集。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |