zoukankan      html  css  js  c++  java
  • 数据库中的 varchar(255) 原因剖析

    数据库中的 varchar(255)

    MySQL | ver < 4.1: VARCHAR以字节为单位存储,所以假设全部为常用汉字(UTF-8

    3字节编码长度),则VARCHAR(255)共可存放约85个汉字;

    MySQL | ver >= 4.1:

    VARCHAR以字符为单位存储,假设输入仍然为常用汉字,则VARCHAR(255)可以存放255个汉字。 

    另外,据我所知,MySQL对UTF-8的支持也仅仅限于1~3字节编码长度(Unicode:0x0000~0xFFFF),可以满足大部分需求,但是生僻字就不行了。

    那么VARCHAR的最大值是多少呢?

    根据官方文档,VARCHAR 最多可以是 65535 字节(这也意味着一条记录只有这一个字段,因为 MySQL 一行只能包含 65535 字节)。

    然而,无法为这么长的 VARCHAR 做索引,对于 MyISAM,可以对前 1000 个字节做索引,对于 InnoDB,则只有 767 字节。(来源依据)

    在varchar长度接近256时,varchar长度设置成255的好处:

    1、方便InnoDB建索引,对于 MyISAM,可以对前 1000 个字节做索引,对于 InnoDB,则只有 767 字节。(来源依据)。255X3=765

    2、少申请一个字节,记录字符创长度,一个8位的tinyint,可以表示的无符号数值的范围是,0-255,如果长度超过了255,需要在申请个字节

  • 相关阅读:
    Mysql Group by week
    查询数据库占用磁盘大小
    菜根谭#117
    菜根谭#116
    保护眼睛颜色的RGB数值
    手动释放linux内存和缓存
    菜根谭#115
    菜根谭#114
    菜根谭#113
    spring mvc静态资源文件的引用
  • 原文地址:https://www.cnblogs.com/braveLN/p/11888076.html
Copyright © 2011-2022 走看看