zoukankan      html  css  js  c++  java
  • mysql之char、varchar、text对比

    mysql5.0.3以后,n都表示字符数(varchar(n))

    • 检索效率 char > varchar > text
    • 当varchar长度超过255之后,跟text一致,但是设置varchar(n)的话,可以防止恶意使用text撑爆数据库
    类型名称 说明 存储需求
    CHAR < M 固定长度非二进制字符串 M字节,1 <= M <= 255
    VARCHAR(M) 变长非二进制字符串 L + 1字节,在此,L <= M和1 <= M <= 255
    VARCHAR(M) 变长非二进制字符串 L + 2字节,在此,L <= M和255 < M <= 65535
    TEXT 小的非二进制字符串 L + 2字节,在此L < 2^16

    char

    • 查询速度:char最快
    • 最大长度:255个字符,utf-8编码的话,占用255 * 3个字节
    • 占用空间:n
    • 其他:
    1. 在获取数据出来之后,一定要记得trim空格,因为不足char(n)的长度,会自动填充空格
    2. 因为定长的char不容易产生碎片,所以char比varchar在空间上也更有效率

    varchar

    • 查询速度:varchar次之
    • 最大长度:65535个字节
    • 占用空间:实际空间 + 1,会使用1-3个字节来存储长度,如果整体长度在0-255bytes之间,长度使用1个字节表示,如果长度在255以上,那么就是2个字节,varchar(10)需要11个存储空间,varchar(1001)需要1002个存储空间
    • 其他
    1. 官方手册定义的varchar最大长度65535指的是所有varchar列长的总和

    text

    • 查询速度:text最慢
    • 最大长度:跟varchar基本相同,保存65535个字符
    • 占用空间:存储2个字节长度
  • 相关阅读:
    抓取国家地区基础数据
    h264
    h.264
    vlc 推送rtsp视频流不能播放
    花生壳tcp内网端口映射
    make 安装时指定目录
    ubuntu安装vsftpd
    vsftpd命令
    vim删除某一列
    linux打开防火墙
  • 原文地址:https://www.cnblogs.com/djzny/p/11062862.html
Copyright © 2011-2022 走看看