首页 > 数据库 >数据库建库时字符集和排序规则的选择

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

时间:2024-09-13 16:24:18浏览次数:12  
标签:ci utf8mb4 字符集 大小写 规则 排序 建库

引言
在MySQL新建一个数据库的时候,第一步就是要选择字符集和排序规则,那你是否真正懂得什么是字符集?什么是排序规则?在新建一个数据库的过程中,选择什么字符集和排序规则最适合?

什么是字符集?如何选择字符集?
字符集就是多个字符的集合,比如诗集里面就包含了诗,文集里面就包含了不同的文章,而不同的字符集里面就包含了不同的字符,也就能够支持存储不同类型的数据。
MySQL常用的字符集如下:

GBK:支持中文,但是不是国际通用字符集
UTF-8:支持中英文混合场景,是国际通用字符集
latin1:MySQL默认字符集
utf8mb4:完全兼容UTF-8,用四个字节存储更多的字符

如果只做国内业务,为了性能考虑可以选择GBK;
但哪个公司没有一个国际化的梦想,为了将来考虑,选择utf8mb4更合适,它能完全兼容UTF-8并且有其它优势。

什么是排序规则?如何选择排序规则?
排序规则是指定字符集下字符间的比较规则。
一些常用的命名规则如下:

_ci :结尾表示大小写不敏感 (caseinsensitive)
_cs :表示大小写敏感 (case sensitive)
_bin :表示二进制的比较 (binary)

常见字符集utf8mb4对应的常用排序规则如下:

utf8mb4_general_ci :不区分大小写, 校对速度快, 但准确度稍差。
utf8mb4_bin::字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容。
utf8mb4_unicode_ci:不区分大小写, 校准确度高,但校对速度稍慢。

通常情况下, 新建数据库时一般选用 utf8_general_ci 就可以了。

结论
新建数据库时,通常字符集可以选择utf8mb4,排序规则可以选择utf8_general_ci。
因为utf8mb4支持中文并且是国际通用字符集,而utf8_general_ci不区分大小写, 校对速度快。

标签:ci,utf8mb4,字符集,大小写,规则,排序,建库
From: https://www.cnblogs.com/zbtblogs/p/18412423

相关文章

  • 桶排序,计数排序
    桶排序(bucketsort)是分治策略的一个典型应用。它通过设置一些具有大小顺序的桶,每个桶对应一个数据范围,将数据平均分配到各个桶中;然后,在每个桶内部分别执行排序(递归);最终按照桶的顺序将所有数据合并。从桶排序的角度看,我们可以将计数排序中的计数数组counter的每个索引视为一个桶......
  • DevExpress WPF中文教程:如何解决排序、过滤遇到的常见问题?(二)
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • 拓扑排序
    拓扑排序LCR113.课程表II#include<iostream>#include<vector>#include<queue>usingnamespacestd;classSolution{public:vector<int>findOrder(intnumCourses,vector<vector<int>>&prerequisites){vec......
  • 【每日一题】LeetCode 2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)
    【每日一题】LeetCode2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)题目描述给定一个整数数组nums,数组下标从0开始。你需要执行以下操作,直到无法再执行为止:选择两个互不相同且未标记的下标i和j。满足条件2*nums[i]<=nums[j],则标记下标i和j。......
  • 排序算法
    排序算法是计算机科学中的基本算法之一,旨在将一组数据按照特定顺序(通常是升序或降序)排列。以下是一些常见的排序算法及其特点:1.冒泡排序(BubbleSort)描述:通过重复遍历待排序的数组,比较相邻的元素并交换它们的位置,直到没有需要交换的元素为止。时间复杂度:最坏和平均情况下为......
  • 爬楼梯(LeetCode)&冒泡和选择排序
    目录一、爬楼梯(LeetCode)1、题目2、代码二、冒泡排序三、选择排序一、爬楼梯(LeetCode)1、题目2、代码二、冒泡排序三、选择排序......
  • 十大排序算法的特点及应用场景
    一.十大经典排序算法介绍1.冒泡排序(BubbleSort)原理:通过重复遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换的元素为止。特点:简单但效率低,适合小数据量的排序。2.选择排序(SelectionSort)原理:首......
  • 复习排序算法
    备战acm校队第二天。实惨,排序学了好几年了,还是没有熟练,意难平啊。特此打开oi-wiki,从头到尾把排序敲一遍。选择排序比较简单。就是把数组里最大数找出来放到最后,然后再把第二大的找出来放在倒数第二位,依次类推,排序就结束了。注:TMD,Dev-C++原来不能把中文注释在代码,不然拷贝出来......
  • 冒泡排序理解
    1.1思路冒泡排序是一种简单的排序方法。基本思路是通过两两比较相邻的元素并交换它们的位置,从而使整个序列按照顺序排列。该算法一趟排序后,最大值总是会移到数组的最后面,那么接下来就不用再考虑这个最大值。一直重复这样的操作,最终就可以得到排序完成的数组。这种算法是稳......
  • Java 排序算法详解
    排序是计算机科学中的基本操作,Java提供了多种排序算法来满足不同的需求。常见的排序算法包括冒泡排序、选择排序、插入排序、归并排序、快速排序和堆排序。本文将逐一介绍这些排序算法及其Java实现。1.冒泡排序(BubbleSort)冒泡排序是一种简单的排序算法,其基本思想是......