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个字节长度
  • 相关阅读:
    MySQL协议分析(2)
    MySQL协议分析(1)
    《汇编语言》知识重点总结
    opencv学习(1.2)
    CentOS 6下OpenCV的安装与配置
    python2与python3之间的主要区别
    python-PEP8编码规范
    解决windows 10无法打开.hlp帮助文件的问题
    将windows server 2016改造为像windows 10一样适合个人使用的系统
    系统分析师成长之路
  • 原文地址:https://www.cnblogs.com/djzny/p/11062862.html
Copyright © 2011-2022 走看看