zoukankan      html  css  js  c++  java
  • MySQL数据库中的字段类型varchar和char的主要区别是什么?哪种字段查找效率要高?

    1,varchar与char的区别?
    (1)区别一,定长和变长,char表示定长,长度固定;varchar表示变长,长度可变。
    当插入字符串超出长度时,视情况来处理,如果是严格模式,则会拒绝插入并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长度时,则会以不同的方式来处理,如char(10),表示存储的是10个字符,不论你插入的是多少,都是10个,如果少于10个则用空格填满。而varchar(10),小于10个的话,则插入多少个字符就存多少个。varchar怎么知道所存储的字符串长度呢?实际上,对于varchar字段来说,需要使用一个(如果字符串长度小于255)或两个字节(长度大于255)来存储字符串长度。
    (2)区别二,存储的容量不同。
    对char来说,最多存放255个字符,和编码无关;而varchar最多存放65532个字符,在存放字符串时候,第一个字节是空的,不存放任何的数据,然后还需要两个字节来存放字符串的长度,所以有效长度就是65535-1-2=65532。

    varchar和char哪种查找效率更高?
    char的效率高,没有碎片,尤其更新比较频繁的时候,方便数据文件指针的操作。但不够灵活,在实际使用中,应根据实际需求来选择合适的数据类型。
     
    2,计算
    若一个表定义为create table t1(c1 int,c2 char(30),c3 varchar(N)) charset=utf-8,
    N的最大值是:
    (65536-4-30*3-1-2)/3

  • 相关阅读:
    jsTree获取选中节点和选中指定节点
    jsTree的checkbox默认选中和隐藏
    ElasticSearch 报错 failed to obtain node locks
    jstree单选功能的实现方法
    layui 报错 jQuery is not defined
    ssdb make 失败 autoconf required
    No package gcc48-c++ available
    查看yum已安装的包
    PHP 生成 UUID
    [构造][dfs树][树的重心][LOJ#3176]「IOI2019」景点划分
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/5974405.html
Copyright © 2011-2022 走看看