首页 > 数据库 >创建数据库时排序规则utf8_general_ci与utf8_bin的区别

创建数据库时排序规则utf8_general_ci与utf8_bin的区别

时间:2024-07-05 08:57:52浏览次数:14  
标签:bin ci utf8 general 大小写 排序

在MySQL数据库中,字符集(如utf8)定义了字符如何存储,而排序规则(Collation)则定义了字符如何比较、排序和区分大小写。utf8_general_ciutf8_bin是两种常用的UTF-8字符集下的排序规则,它们之间的主要区别如下:

utf8_general_ci

  • 全称case-insensitive,意为“不区分大小写”。
  • 特点
    • 在比较字符串时,utf8_general_ci会忽略字母的大小写。例如,“A”和“a”会被视为相同。
    • 此外,它还使用了一些语言特有的比较规则,比如在某些语言中,重音符号可能会被忽略,使得带有重音的字母和不带重音的字母被视为相等。
    • 这是最常用的UTF-8排序规则,因为它适合大多数不强调精确文本比较的应用场景,且性能较好。

utf8_bin

  • 全称binary,意为“二进制”,即严格按照字节值进行比较。
  • 特点
    • utf8_bin在比较时会区分大小写,并且完全按照字节的二进制值进行比较,没有任何语言特定的规则。
    • 例如,“A”和“a”会被视为不同的字符,因为它们的字节值不同。
    • 这种排序规则适用于需要精确匹配的场景,比如密码存储、唯一标识符或者程序需要区分大小写的情况。

应用场景选择

  • 如果你的应用不关心大小写敏感性,且需要较好的性能,或者处理的是多语言数据,推荐使用utf8_general_ci
  • 如果你的应用需要精确的字符比较,比如区分大小写,或者在进行安全相关的比较(如密码验证),则应选择utf8_bin

总的来说,选择哪种排序规则取决于你的具体需求,尤其是在考虑查询性能和数据准确性之间的平衡。

标签:bin,ci,utf8,general,大小写,排序
From: https://www.cnblogs.com/flzs/p/18285045

相关文章

  • SCI一区级 | Matlab实现BO-Transformer-GRU时间序列预测
    SCI一区级|Matlab实现BO-Transformer-GRU时间序列预测目录SCI一区级|Matlab实现BO-Transformer-GRU时间序列预测效果一览基本介绍程序设计参考资料效果一览基本介绍1.【SCI一区级】Matlab实现BO-Transformer-GRU时间序列预测,贝叶斯优化Transformer......
  • WPF Datagrid ContextMenu MenuItem Command CommandParameter MultiBinding
     //xaml<Windowx:Class="WpfApp194.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas......
  • Collectors中的groupingBy和reducing 细节问题
    stream流中对数据进行先分组在聚合,一般会想到使用groupingBy和reducing,但是reducing中的identity是只会初始化一次的,所以我们传参的时候传的是Object,不是XXX::new,在reducing的合并函数中我们不能返回vo1或者vo2,只能new一个对象正确使用Map<String,StatisticsVo>collect=s......
  • 2024 5th International Conference on Big Data & Artificial Intelligence & Softwa
    20245thInternationalConferenceonBigData&ArtificialIntelligence&SoftwareEngineeringhttp://www.icbase.org/截稿日期:2024-09-13通知日期:2024-09-13会议日期:2024-09-20会议地点:Wenzhou,China届数:5征稿:The20245thInternationalConferenceonBigD......
  • 修复Scikit-learn中的`ValueError: Input contains NaN`
    @TOC博主默语带您GotoNewWorld.✍个人主页——默语的博客......
  • SciTech-EECS-ADC/DAC: 源自Digikey的模数/数模转换文章:原理、类型、特点、应用、推
    ADC/DAC教程作者:PatSagsveen,投稿人:DigiKey,2017-09-13https://www.digikey.cn/zh/articles/adc-dac-tutorial如今的世界充满着各种数字信号和模拟信号。这些信号表现不同,但通常都被用来帮助实现更大的目标。ADC:想象你是负责控制HVAC装置的工程师。无论你打算使......
  • 编译安装Kubernetes 1.29 高可用集群(6)--Cilium网络组件和CoreDNS配置
    1.部署Cilium网络组件1.1在k8s-master节点上,下载安装helmwgethttps://mirrors.huaweicloud.com/helm/v3.15.2/helm-v3.15.2-linux-amd64.tar.gztar-zxvfhelm-v3.15.2-linux-amd64.tar.gzcplinux-amd64/helm/usr/bin/#helmversionversion.BuildInfo{Version:"v3.1......
  • 掌握Mojolicious会话管理:构建安全、持久的Web应用
    掌握Mojolicious会话管理:构建安全、持久的Web应用Mojolicious是一个基于Perl的高性能、异步Web开发框架,它提供了一套完整的工具来构建现代Web应用。会话管理是Web开发中的一个关键组成部分,它允许应用识别和保持用户的登录状态。本文将深入探讨如何在Mojolicious中实现会话......
  • Derect local .aar file dependencies are not supported when building an AAR
    背景项目中需要将部分功能业务打包成aar包供其它项目调用,我引入了fataar(具体使用方式见github)。实际打包过程中抛出错误Derectlocal.aarfiledependenciesarenotsupportedwhenbuildinganAAR原因分析我们项目中lib文件夹下导入了很多jar包、aar包,在之前没有引入aar包......
  • Mojolicious表单提交:优雅处理用户输入的艺术
    Mojolicious表单提交:优雅处理用户输入的艺术在Web开发中,表单是用户与服务器交互的重要方式之一。Mojolicious作为一个高性能的、面向对象的Web框架,提供了一套简洁而强大的工具来处理表单提交。本文将深入探讨如何在Mojolicious中处理表单提交,包括表单创建、数据验证、CSRF......