zoukankan      html  css  js  c++  java
  • oracle mysql gbk varchar varchar2

    http://www.cnblogs.com/kxdblog/p/4042331.html

    https://wenku.baidu.com/view/97524e0f844769eae009ed80.html

    http://blog.csdn.net/lwei_998/article/details/7728173

    char是定长的,varchar是变长的。varchar2应该是varchar的升级,似乎只有ORACLE才有,这里不作讨论。 

    char定长存储,速度快,但是存在一定的空间浪费,适用于字段不是很大,对速度要求高的场合。速度快是因为其在物理上是按定长存储的,这样,就可以根据偏移址一次取出固定长度的字符。 

    varchar变长存储,所以效率不如char。varchar在存储时,在物理上要先存储该字段的实际长度,然后才是内容。这样读取的时候,就要读取两次,一次读它的长度,然后才是内容。所以它的访问速度会比char慢一些。但它可以节省空间。  

    由于mysql自身的特点,如果一个数据表存在varchar字段,则表中的char字段将自动转为varchar字段。在这种情况下设置的char是没有意义的。所以要想利用char的高效率,要保证该表中不存在varchar字段;否则,应该设为varchar字段。

    char

    是定长的,

    varchar

    是变长的。

    varchar2

    应该是

    varchar

    的升级,似乎只

    ORACLE

    才有,这里不作讨论。

     

    char

    定长存储,速度快,但是存在一定的空间浪费,适用于字段不是很大,对

    速度要求高的场合。

    速度快是因为其在物理上是按定长存储的,

    这样,

    就可以根

    据偏移址一次取出固定长度的字符。

     

    varchar

    变长存储,所以效率不如

    char

    varchar

    在存储时,在物理上要先存储

    该字段的实际长度,然后才是内容。这样读取的时候,就要读取两次,一次读它

    的长度,然后才是内容。所以它的访问速度会比

    char

    慢一些。但它可以节省空

    间。

     

     

    由于

    mysql

    自身的特点,如果一个数据表存在

    varchar

    字段,则表中的

    char

    段将自动转为

    varchar

    字段。在这种情况下设置的

    char

    是没有意义的。所以要

    想利用

    char

    的高效率,要保证该表中不存在

    varchar

    字段;否则,应该设为

    varchar

    字段。

  • 相关阅读:
    List remove注意点
    枚举类比较的陷阱
    【好书推荐】《剑指Offer》之硬技能(编程题7~11)
    【好书推荐】《剑指Offer》之硬技能(编程题1~6)
    【好书推荐】《剑指Offer》之软技能
    在互联网中关系型数据库是否不再那么重要
    常用开发环境搭建配置教程(OneStall)
    让Mongo在Spring中跑起来
    MongoDB初了解——用户权限
    毕业这两年
  • 原文地址:https://www.cnblogs.com/rgqancy/p/7792906.html
Copyright © 2011-2022 走看看