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

  • 相关阅读:
    阿里云主机如何重装系统?
    Linux下mysql新建账号及权限设置
    Ahead-of-time compilation(AOT)
    XBOX ONE游戏开发常见问题
    云计算之路-阿里云上:RDS用户的烦恼
    数字证书原理
    《你不常用的c#之二》:略谈GCHandle
    批处理文件指定jre路径启动java桌面应用程序
    关于OAUTH2.0的极品好文
    第一天接触Orchard
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/5974405.html
Copyright © 2011-2022 走看看