返回顶部
首页 > 资讯 > 数据库 >MySQL建立数据库时字符集和排序规则的选择
  • 712
分享到

MySQL建立数据库时字符集和排序规则的选择

数据库mysqljava 2023-08-20 21:08:21 712人浏览 泡泡鱼
摘要

文章目录 前言一、字符集?二、Mysql中的字符集1.Unicode与UTF8、UTF8MB4、UTF16、UTF32关系2.Mysql新建数据库时选择哪种字符集呢? 三、Mysql排序规则四、Mysql查询字符集和排序规则常



前言

Mysql中,字符集和排序规则是区分开来的,你可以单独设置字符集和排序规则。
mysql字符集和排序规则有关联而且还不是必选项,如果字符集和排序规则都不填写,Mysql会做默认处理;或者设置其一,比如设置字符集,会默认设置了与字符集相应的排序规则。
我们建立数据库是总要涉及到字符集和排序规则的选择问题?怎么选择呢,有什么区别呢?


一、字符集?

先说字符,字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

字符集(Character set)是多个字符的集合,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。

字符编码(Character encoding)也称字集码,是把字符集中的字符通过编码成为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

二、Mysql中的字符集

在这里插入图片描述在MySQL中,常用的几个字符集有UTF8、UTF8MB4、UTF16、UTF32等,那么Unicode与UTF8、UTF8MB4、UTF16、UTF32是什么关系?我们新建数据库时选择哪种字符集呢?

1.Unicode与UTF8、UTF8MB4、UTF16、UTF32关系

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。UTF8、UTF16、UTF32是Unicode码一种实现形式,都是属于Unicode编码。

2.Mysql新建数据库时选择哪种字符集呢?

UTF8和UTF8MB4是常用的两种字符集,至于这两个选用哪个要根据自己业务情况而定。UTF8MB4兼容UTF8,比UTF8能表示更多的字符,Unicode编码区从编码区1-126属于UTF8区,当然UTF8MB4也兼容这个区,126行以下就是UTF8MB4扩充区,所以你要根据自己的业务进行选择,一般情况下UTF8就满足需求,当然如果考虑到以后扩展,比如考虑到以后存储emoji,就选择UTF8MB4,否则只是浪费空间。我建议还是选择UTF8MB4,毕竟对于大部分公司而言空间不是什么大问题。

三、Mysql排序规则

在这里插入图片描述UTF8MB4常用的排序规则:utf8mb4_unicode_ciutf8mb4_general_ciutf8mb4_bin,选用哪种方式呢?先来分析一下:

准确性:

(1)utf8mb4_unicode_ci 是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序,不区分大小写

(2)utf8mb4_general_ci 没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致,不区分大小写

性能:

(1)utf8mb4_general_ci 在比较和排序的时候更快
  (2)utf8mb4_unicode_ci 在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。相比选择哪一种collation,使用者更应该关心字符集与排序规则在db里需要统一。
  (3)utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。
  总而言之,utf8mb4_general_ci 和utf8mb4_unicode_ci 是我们最常使用的排序规则。utf8mb4_unicode_ci 校对速度快,但准确度稍差。utf8_unicode_ci准确度高,但校对速度稍慢,两者都不区分大小写。这两个选哪个视自己情况而定,还是那句话尽可能保持db中的字符集和排序规则的统计。

四、Mysql查询字符集和排序规则常用的命令

功能命令
查看数据库字符集show create database 数据库名
查看数据表全部字段排序规则show full columns from 表

来源地址:https://blog.csdn.net/hsuehgw/article/details/128737673

您可能感兴趣的文档:

--结束END--

本文标题: MySQL建立数据库时字符集和排序规则的选择

本文链接: https://lsjlt.com/news/376660.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作