美文网首页
mysql查漏补缺2

mysql查漏补缺2

作者: 寒食君 | 来源:发表于2019-06-12 15:48 被阅读0次
  1. 编码、解码

计算机硬盘中只能存储二进制,那么怎么来存储字符串呢?答案是通过建立二进制与字符串的映射关系。那么如何映射呢?需要一个约定的集合来充当中介,这就是字符集。

将字符映射成二进制数据叫做编码,将二进制数据映射为字符的过程叫做解码。

常用的字符集有比如ASCII,ASCII使用一个字节编码,共收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符。例如'L' -> 01001100,十六进制:0x4C

最通用的字符集为utf-8,收录地球上能想到的所有字符。采用变长编码方式,编码一个字符需要使用1~4个字节。例如:'L' -> 01001100(十六进制:0x4C) '啊' -> 111001011001010110001010(十六进制:0xE5958A)

  1. MySQL中的utf8和utf8mb4

utf-8使用1-4个字节,但是一般常用的字符1-3个字节就足够了,考虑到读写效率,于是MySQL自己擅作主张地将自己的utf8字符集改为1-3个字节。这样可能导致一些问题,比如emoji表情读写失败。utf8mb4才是正统的使用1-4个字节存储数据的字符集,所以一般在建库时,都会选择utf8mb4。

  1. 比较规则

如何比较两个字符的大小?我们需要比较规则。如何制定比较规则才是合理的呢?最简单的想法是:使用字符相对应的二进制数来比较。比方说字符'a'的编码为0x01,字符'b'的编码为0x02,所以'a'小于'b'。

但很多时候这么简单的比较规则无法满足需求,那么更加多样、复杂的比较规则就应运而生了。就拿最常见的utf8_general_ci来说吧,utf8代表所应用的字符集,general表示通用的,其他还有例如spanish,则代表更适合西班牙语字符。ci代表不区分大小写,其他还有例如cs,代表区分大小写。

比较规则大多用于排序,如果在对字符串作排序后得到了意想不到的结果,需要考虑一下是不是比较规则的设置上出现了问题。

相关文章

  • mysql查漏补缺2

    编码、解码 计算机硬盘中只能存储二进制,那么怎么来存储字符串呢?答案是通过建立二进制与字符串的映射关系。那么如何映...

  • MySQL查漏补缺

    MySQL查漏补缺 目录 唯一索引比普通索引快吗, 为什么MySQL由哪些部分组成, 分别用来做什么MySQL查询...

  • mysql查漏补缺

    1. 客户端与服务器连接的过程 TCP/IP:最常见的方式 命名管道和共享内存: 可在windows平台上使用。使...

  • mysql查漏补缺

    基本 1.+号的作用 在java中的+号 运算符,两个数都是数值型 连接符,只要其中一个操作数是字符串mysql中...

  • 【Android面试查漏补缺】之事件分发机制详解

    前言 查漏补缺,查漏补缺,你不知道哪里漏了,怎么补缺呢?本文属于【Android面试查漏补缺】系列文章第一篇,持续...

  • 查漏补缺

    如果想让HTML5标签兼容低版本浏览器的话,可以使用 html5shiv js来实现。注意:一定要把它引入到前面。...

  • 查漏补缺

    图文环绕和浮动 最初的CSS只是用来写文章,熟练使用float和clear两个属性来布局: float属性:指定一...

  • 查漏补缺

    1.js字符串转换成数字与数字转换成字符串的实现方法https://www.2cto.com/kf/201612/...

  • 查漏补缺

    浮动原理 1.使用之初:是为了让文字环绕图片,并且不会遮住文字。如果让图片与文字有间距,我们在浮动元素上添加。2....

  • 查漏补缺

    今天数学老师外出学习,我用了一上午的时间给孩子们查漏补缺。 首先,训练朗读:从段落与段落之间的大停顿...

网友评论

      本文标题:mysql查漏补缺2

      本文链接:https://www.haomeiwen.com/subject/exmlfctx.html