返回顶部
首页 > 资讯 > 数据库 >建Mysql数据库时为什么不适用utf8
  • 471
分享到

建Mysql数据库时为什么不适用utf8

2024-04-02 19:04:59 471人浏览 安东尼
摘要

本篇文章给大家主要讲的是关于建Mysql数据库时为什么不适用utf8的内容,感兴趣的话就一起来看看这篇文章吧,相信看完建mysql数据库时为什么不适用utf8对大家多少有点参考价值吧。 当然,现在

本篇文章给大家主要讲的是关于建Mysql数据库时为什么不适用utf8的内容,感兴趣的话就一起来看看这篇文章吧,相信看完建mysql数据库时为什么不适用utf8对大家多少有点参考价值吧。 

当然,现在建数据库时,大家一般都会使用utf8mb4,那为什么不适用utf8呢,其实是一个坑。
mysql中的utf8只支持每个字符三个字节,而真正的UTF-8是每个字符最多四字节,这可以算数Mysql的一个bug。在mysql中,真正支持UTF-8的字符集是utf8mb4,占用四个字节。
历史数据是这样的:
2003年,MySQL 从 4.1 版本开始支持 UTF-8,但是这是一个旧版的标准(RFC 2279),新版的UTF-8标准(RFC 3629)是之后才出现的。
RFC 2279最多支持每个字符 6 个字节。但是在2002年9月,MySQL源代码进行了一次调整:“UTF8 现在最多只支持 3 个字节的序列”。至于调整的原因,目前也已经无从考证了。
可以猜测一下,大概是当初的设计者想要占用更少的空间,达到更快的查询速度吧。6个字节有点多,3个字节足够了。但是这也就造成了由于存储空间不够,不能兼容RFC 3629标准。
所以utf8可以说是mysql的独创的一套字符集,并不符合字面给人的认知。人们发现了他的问题之后,期待MySQL进行修复。不过可能是因为种种原因吧,mysql并没有修复utf8的问题,而是在 2010 年重新发布了“utf8mb4”来支持真正的UTF-8。
所以呢,重要的事说三遍。
mysql中,utf8不是真正的支持UTF-8的字符集,utf8mb4才是。
mysql中,utf8不是真正的支持UTF-8的字符集,utf8mb4才是。
mysql中,utf8不是真正的支持UTF-8的字符集,utf8mb4才是。
建Mysql数据库时为什么不适用utf8

以上关于建Mysql数据库时为什么不适用utf8详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: 建Mysql数据库时为什么不适用utf8

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

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

猜你喜欢
  • 建Mysql数据库时为什么不适用utf8
    本篇文章给大家主要讲的是关于建Mysql数据库时为什么不适用utf8的内容,感兴趣的话就一起来看看这篇文章吧,相信看完建Mysql数据库时为什么不适用utf8对大家多少有点参考价值吧。 当然,现在...
    99+
    2024-04-02
  • 为什么不使用MySQL数据库
    小编给大家分享一下为什么不使用MySQL数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  1、MySQL(和PHP搭配之最...
    99+
    2024-04-02
  • 在MySQL中为何不建议使用utf8
    目录何为字符集?有哪些常见的字符集?ASCIIGB2312GBKGB18030BIG5Unicode & UTF-8 编码mysql 字符集MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 ut...
    99+
    2024-04-02
  • mysql删除数据时为什么不用delete
    本篇内容介绍了“mysql删除数据时为什么不用delete”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • mysql创建数据库时为什么要指定编码
    这篇文章主要介绍“mysql创建数据库时为什么要指定编码”,在日常操作中,相信很多人在mysql创建数据库时为什么要指定编码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”my...
    99+
    2024-04-02
  • navicat为什么不能新建数据库
    无法在 navicat 中创建数据库的原因包括:服务器未连接、权限不足、名称冲突、磁盘空间不足、系统资源不足、服务器配置错误或 navicat 版本问题。如果您遇到此问题,请检查连接、权...
    99+
    2024-04-24
    navicat
  • mysql数据库中utf8mb4 unicode ci和utf8 general ci什么区别?
    utf8mb4是4个字节。utf8是3个字节。utf8mb4兼容性更好,占用空间更大。 主要从排序准确性和性能两方面看: 准确性utf8mb4_unicode_ci 是基于标准的Unicode来排序和比较,能够在各种语言之间精...
    99+
    2014-10-18
    mysql数据库中utf8mb4 unicode ci和utf8 general ci什么区别?
  • 浅谈为什么MySQL不建议delete删除数据
    前言 我负责的有几个系统随着业务量的增长,存储在MySQL中的数据日益剧增,我当时就想现在的业务方不讲武德,搞偷袭,趁我没反应过来把很多表,很快,很快啊都打到了亿级别,我大意了,没有闪,这就导致跟其Join的表的S...
    99+
    2022-05-26
    MySQL不建议delete删除 MySQL delete删除
  • 为什么选择mysql数据库?
    1、mysql性能卓越,服务稳定,很少出现异常宕机。 2、mysql开放源代码且无版权制约,自主性及使用成本低。 3、mysql历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。 4、mysql软...
    99+
    2024-04-02
  • 为什么不能用uuid作为数据库主键
    这篇文章主要介绍“为什么不能用uuid作为数据库主键”,在日常操作中,相信很多人在为什么不能用uuid作为数据库主键问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么不能用...
    99+
    2024-04-02
  • 数据库中BDE Administrator为什么不可用
    BDE Administrator不可用的可能原因有以下几点: 未正确安装BDE组件:BDE Administrator是Bor...
    99+
    2023-10-27
    数据库
  • 为什么MySQL不建议使用SELECT *
    目录1. 不必要的磁盘I/O2. 加重网络时延3. 无法使用覆盖索引4. 可能拖慢JOIN连接查询“不要使用SELECT *”几乎已经成为了MySQL...
    99+
    2024-04-02
  • MySQL为什么不会丢失数据
    本篇内容介绍了“MySQL为什么不会丢失数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!进入正题前先简单...
    99+
    2024-04-02
  • 为什么数据库不应该使用外键
    为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面...
    99+
    2019-08-06
    为什么数据库不应该使用外键 数据库入门 数据库基础教程 数据库 mysql
  • 数据库为什么要建立索引
    今天小编给大家分享的是数据库要建立索引的原因,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。数据库中建立索引的主要作用是为了提高查询速度。索引可以加快对数据的...
    99+
    2024-04-02
  • navicat为什么连接不上数据库
    navicat无法连接数据库的常见原因有:数据库服务器未运行防火墙或网络问题用户名或密码错误数据库连接参数不正确navicat版本问题数据库服务器繁忙驱动程序问题数据库服务器配置错误 ...
    99+
    2024-04-06
    navicat 网络问题
  • mysql怎么查看数据库创建时间
    在MySQL中,可以使用以下的方法来查看数据库的创建时间: 使用SHOW CREATE DATABASE语句来查看数据库的创建语句...
    99+
    2024-04-09
    mysql 数据库
  • 在mysql中创建数据库用什么语句
    mysql 中创建数据库的语句是 create database。语法:create database database_name,其中 database_name 为要创建的数据库名称...
    99+
    2024-04-05
    mysql
  • 在mysql中创建数据库用什么命令
    mysql 中创建数据库的命令为 create database database_name;,需要指定要创建的数据库名称,例如要创建名为 "my_database" 的数据库,使用 c...
    99+
    2024-05-01
    mysql
  • 阿里云数据库为什么不能修改数据
    简介 阿里云数据库是一种可靠、安全、高性能的云数据库服务,广泛应用于各种企业和个人的应用场景中。然而,很多用户在使用阿里云数据库时会遇到无法修改数据的问题,这给用户的业务带来了一定的困扰。本文将探讨为什么阿里云数据库不能修改数据,并提供一些...
    99+
    2024-01-20
    阿里 数据库 数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作