【转】mysql 、oracle中char和varchar以及varchar2的区别

mysql

char是固定长度,varchar是可变长度的,varchar2是oracle特有的。
char定长存储,速度快,但是存在一定空间的资源浪费,适用于存储字段不是很大、对速度要求高的场合。速度快是因为在物理上是按照定长存储的,这样就可以根据偏移地址一次取出固定长度的字符。
varchar是变长存储,所以速度没有char快。varchar在存储时,在物理上先要存储该字段的实际长度,然后才会存储内容,这样在读取的时候,也会读取两次。所以在读取的时候也会比char要慢一下。但是可以节省空间。
由于mysql自身的特点,如果一个表中存在varchar字段,那么该表中的其他设置的char字段将自动转换成varchar,在这种情况下设置的char是没有意义的。所以要是想利用char的高效率,则要保证在该表中不能使用varchar字段!

oracle

char的长度是固定的,varchar2的长度是可以变的;比如存储字符串"abc",对于char(10)来说,存储的该字符串占用20个字节(其中包含7个空字符);而对于varchar2(10)来说,则只占用了3个字节的长度,10是最大值,当你存储的字符小于10时,按照实际长度来存储。
char的效率要比varchar2的效率高。
varchar2和varchar是同义词,标准的varchar类型可以存储空字符串,而oracle开发的varchar2不是一个标准的varchar,它将数据库中varchar列可以存储空字符串的特性改为了可以存储null值;如果有想向后兼容的能力,则oracle建议使用varchar2.

 

总结:
char与varchar2二者是互补的关系,varchar2比char节省空间,在效率上比char要慢一些,要想获得效率,就必须牺牲一定的空间,这也就是数据库设计上常说的‘以空间换效率’。
varchar2虽然比char节省空间,但是如果一个varchar2列经常被修改,而且修改的数据长度还不相同,这会引起‘行迁移’现象,从而造成多余的I/O,这是在数据库设计中尽量避免的,在这种情况下使用char来代替varchar2会好一些。
 
————————————————
版权声明:本文为CSDN博主「小星星要努力」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39306908/article/details/102563421

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WinCE Boot方式及 Bootloader架构概述

Bootloader的概念就是一个用于引导的loader,在系统上电的时候最先被运行,然后对硬件平台做最基本的初始化,最后把操作系统加载起来。不同的嵌入式操作系统都有自己的Bootloader,但是本质功能都是一样的。 在WinCE中用的最多的就是…

静物摄影用光技巧_摄影技巧:摄影如何用光?摄影大师总结的10点,非常受用!...

点击上方蓝字关注「摄影技巧入门教程」ID:sheying116找到右上角点击?... 设为星标/置顶 丨摄影技巧丨丨摄影入门丨丨摄影教程丨丨摄影图片丨摄影技巧:光线的运用在摄影中至关重要,但很多摄影新手却不知道该如何用光,今天我们就来…

Python如何创建相同值的数组/列表

题目要求 现在有这样的一个需求:创建一个数组或列表,列表中的所有值是相同的。 解决方法 找到两种解决方法,第一种是使用Python的基础语法,第二种是借助numpy包提供的函数实现。分别为大家进行介绍。 方法一:使用P…

【转】肺小结节就诊指南:4种CT的区别及如何选择?

又到医院体检的季节,胸外科医师又要忙着给本院同事看片子了。目前体检查出的早期肺癌越来越多,主要归功于CT检查的普及,相较于X-ray胸片,CT对肺内小结节,特别是小于1cm的结节诊断率更高。因此,要提高早期肺…

CTL_CODE说明

我们在说DeviceIoControl函数时其第二个参数dwIoControlCode就是由CTL_CODE宏定义的,下边我们可以了解一下CTL_CODE的内容。CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:DeviceType(设…

修改Linux主机名和IP

问题描述 又到了例行的系统安全测试时间,公司部署的一套系统需要做安全测试了,首先要做主机渗透,显然不可能在正式环境直接测,于是就把几台服务器做了个镜像,作为测试环境。 现在问题是,测试环境的ip要修…

可以获得索引值码_搜索引擎优化最适合什么样子的工作?

有些人一直在学习搜索引擎优化,并一直想学习搜索引擎优化。这里是一个关于搜索引擎优化职位的简要介绍。1、 搜索引擎优化的位置是什么?随着电子商务产业的发展,搜索引擎优化的地位越来越重要。它主要负责优化网页的自然排名,这与…

【转】医学图像之DICOM格式解析

最近导师给安排了新任务,由于刚进入实验室,对于医学图像这一块还一知半解,所以就想分享一下有关医学常见影像的学习资料(尤其是dicom后缀的图像文件),欢迎大家一起交流。 目录 1.医学影像学的介绍 2.DICOM信息的简介 3.DICOM内…

DeviceIoControl的使用说明

应用程序和驱动程序的通信过程是:应用程序使用CreateFile函数打开设备,然后用DeviceIoControl与驱动程序进行通信,包括读和写两种操作。还可以用ReadFile读数据用WriteFile写数据。操作完毕时用CloseHandle关闭设备。我们比较常用的就是用Dev…

多元有序logistic回归分析_一文详述:观察性研究中的logistic回归分析思路

本文内容来自《中华流行病学杂志》2019年第40卷第8期,作者为冯国双教授,原题目为《观察性研究中的logistic回归分析思路》。将这篇文章分享给医咖会的伙伴们,希望大家能从领域大咖的见解中有所收获,指导医学研究之路。&#xff08…

CTL_CODE定义中Method的说明

我在上一篇中说明CTL_CODE的时候,其中CTL_CODE定义中有一个Method域,该域的功能意义是定义用于与在驱动程序中获取应用程序数据缓冲区的地址方式。如果你看了我前边的文章,你可以看到在DeviceIoControl的使用说明中对DeviceIoControl参数进行…

【转】禁用Chrome和Firefox中自动播放的动画GIF

动画GIF已经腐臭,并且在浏览时自动播放时可能会非常烦人。以下是如何阻止他们在Chrome和Firefox中自动播放。 禁用动画GIF Firefox 在地址栏中输入: about:config,然后按Enter。如果“这可能会使您的保修信息失效,请点击&#…

Python:Sklearn概述

文章来源:https://blog.csdn.net/algorithmPro/article/details/103045824 Sklearn (全称 Scikit-Learn) 是基于 Python 语言的机器学习工具。它建立在 NumPy, SciPy, Pandas 和 Matplotlib 之上,里面的 API 的设计非常好,所有对象的接口简单…

裤子尺码对照表eur40_欧洲40的尺码具体部位多少

展开全部根据服装bai尺码标准:欧码的du40码等于中zhi国尺码175/96A。172/96A,代表身高dao173-177cm,胸围94-98cm,腰内围76-80cm,A表示A型标准体型。容在国家标准GB/T1335中,女装上衣S号(小号)的号型是155/8…

wince下Gpio 驱动程序

【转】wince下Gpio 驱动程序 在WINCE下能够直接访问的都是虚拟地址,不能直接访问GPIO端口,因此我们首先需要将GPIO口的物理地址映射到虚拟地址上来。 分别使用VirtualAlloc和VirtualCopy这两个函数来完成映射! 这两个函数的原型: …

【转】CT层厚、层间距、层间隔的概念是什么,MRI的层厚、层间距、曾间隔是什么

CT层厚指扫描层的厚度。CT层间距指两个扫描层面中心之间的距离。CT层间隔指两层之间的距离。 做CT打比方就是把胡萝卜切成片,观察每片的结构。 那胡萝卜需要切多厚呢?这个葫芦卜片的厚度就是这个扫描层厚。当然切得越薄看得越细,但人体承受的…

内存参数 计算_Spark统一内存管理的实现

本文从源码角度分析spark统一内存管理的实现原理。统一内存管理对象的创建统一内存管理对象在SparkEnv中进行创建和管理,这样内存管理就在Driver和Executor端中都可以使用。在SparkEnv的create函数中,创建内存管理对象的实现代码如下:val use…

Python:以鸢尾花数据为例,介绍决策树算法

文章参考来源: https://www.cnblogs.com/yanqiang/p/11600569.html https://www.cnblogs.com/baby-lily/p/10646226.html https://blog.csdn.net/liuziyuan333183/article/details/107399633 决策树算法 决策树算法主要有ID3, C4.5, CART这三种。 ID3算法从树的…

VirtualAlloc和VirtualCopy的蕴含知识点

VirtualAlloc和VirtualCopy的蕴含知识点 1.VirtualAlloc用来在进程的虚拟地址空间中保留(reserve)或者提交(commit)页。在保留时以64KB为粒度,即保留空间以64K为单位。而提交虚拟地址时,则以页(典型大小为4KB)为单位。 2.VirtualCopy用来绑…

【转】CT球管小知识--热容量

Heat Unit 简称HU,为DR、CT等医疗设备中球管的热容量单位。如,Varian球管RAD14的热容量为300kHU。设备工作时,X线管两极之间要承受极高的电压,并通过一定量电流,高速电子束撞击阳极靶面,将产生大量热能。X线…