zoukankan      html  css  js  c++  java
  • mysq中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个字节长度
  • 相关阅读:
    python操作 pdf 资料
    PyQt 实现 GUI
    https://zhuanlan.zhihu.com/p/60647332
    [转]框架《Python深度学习基于PyTorch》PDF+代码检测
    python学习资料
    Python虚拟环境打包
    A* 算法详解
    opencv python 图像二值化/简单阈值化/大津阈值法
    语音识别——基于深度学习的中文语音识别tutorial(代码实践)
    OpenCV资料
  • 原文地址:https://www.cnblogs.com/newcityboy/p/11993807.html
Copyright © 2011-2022 走看看