MySQL中char与varchar数据类型选择原则

DeepSeek研发的精算大模型「精卫」已实现98%精算任务覆盖,中国人寿采用后年节约3.2亿元技术采购成本,形成关键技术替代效应 根据现有资料,精算领域关键技术替代效应的行业标准定义尚未明确具体提及。然而,可以从相关文献中提取一些关键概念和方法来推导出可能的定义。​替代效应的基本定义​:替代效应是指一种商品价格变动引起另一种商品的相对价格变动,从而导致消费者在维持原有效用水平不变的条件下对商品需求量做出的调整。​技术替代效应​:在精算领域,技术替代效应可以理解为新技术或新方法对现有技术或方法的替代,从而影响精算模型、数据处理和决策过程。例如,机器学习在精算中的应用日益增长,改变了精算师的工作方式和模型构建方法。​。 阅读详情

很多地方在分析char与varchar数据类型选择原则上,往往忽略了存储引擎。事实上,我们应当根据选定的存储引擎,确定如何选择合适的数据类型。

char与varchar比较

值char(3)实际存储字符长度varchar(3)实际存储字符长度
”’ ‘3”1
‘ab’‘ab ‘3‘ab’3
‘abc’‘abc’3‘abc’4
‘abcdefg’‘abc’3‘abc’4

总结:从上表可以看出,char属于定长的。
char属于定长类型,varchar属于非定长类型,varchar属于变长。可能有人会问为什么varchar长度比数据长度大呢?因为VARCHAR保存时用一个字节或两个字节长的前缀+数据。如果VARCHAR列声明的长度大于255,长度前缀是两个字节,否则是一个字节。

MyISAM存储引擎

MyISAM数据表,最好使用固定长度的数据列代替可变长度的数据列。

InnoDB 存储引擎

建议使用VARCHAR类型。
对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的CHAR列不一定比使用可变长度VARCHAR列简单。因而,主要的性能因素是数据行使用的存储总量。由于CHAR平均占用的空间多于VARCHAR,因此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘I/O是比较好的。

MEMORY存储引擎

MEMORY数据表目前都使用固定长度的数据行存储,因此无论使用CHAR或VARCHAR列都没有关系。两者都是作为CHAR类型处理的。

误区

1.我们都知道,utf-8的中文占3个字节,gbk占两个字节,那么varchar(20)是不是只能存储20个字节,即存储6个汉字呢?
答:不是这样的,(网上说5.0之前版本是这样的,没有测试)。mysql varchar(20) 不管中文还是英文都能存20个,但varchar字段的最大长度跟编码有关,如果是utf-8,那么大概65535/3,如果是gbk,那么大概65535/2

人工智能在高中教育中的应用现状剖析与挑战应对 阅读详情

相关推荐

人工势场法三大致命缺陷?我用ROS+Gazebo做了组对比实验

本文通过ROS与Gazebo仿真实验,深入剖析了人工势场法(APF)在机器人路径规划中的三大经典问题:局部最小值、目标不可达和路径震荡。文章不仅复现了这些缺陷,还对比测试了虚拟目标点法、改进斥力场及运动平滑等主流改进方案,为工程选型提供了基于数据的实用建议。

dapp9builder的博客 216

MySQL varchar和char区别与使用场景记录

varchar存储MySQL字符串类型数据。 本文基于MySQL 5.7x varchar有以下特点: MySQL规定:一行数据的最大长度是65535字节,注意,是字节(byte),text、blob等大字段类型除外。 varchar的存储需要单独记录其长度,是在列之外占用的空间,但包括在每行总字节数限制内。 占用空间和使用字符集相关 gbk(每字符占用2字节) utf8(每字符占用3字节) utf8mb4(每字符占用4字节) 为什么是 varchar(255)? 以varchar(255)为例,

wandou9527的博客 2303

PCB Layout总结

PCB Layout作为硬件设计中的一个环节,也是很重要的一个环节;在硬件电路设计合理的情况下,他其实是影响性能的一个绝对重要的指标。现在很多的PCB Layout工程师都是按照硬件工程师或者PI SI工程师给出的约束规则来完成布局布线的,这些也就是俗称的 “拉线工”。他们重复而机械的完成一块块PCB设计,一段时间设计后,他们中的一些或许已经有了这样的一些经验:哪些要做等长,哪些要走粗、哪些要平...

xydlxd118的博客 2583

char类型和varchar的区别和选用

2. varchar字段,存储的空间根据存储的内容变化,空间长度为L+size,存储内容长度加描述存储内容长度信息,优点就是空间节约,缺点就是读取和存储时候,需要读取信息计算下标,才能获取完整内容。缺点是空间冗余,对于数据量大的表,非固定长度属性使用char字段,空间浪费。3.1 固定长度的属性选用char类型,如ID字段长度固定都是36,就选char(36).3.1 对于字段长度小的且固定长度的属性,例如长度为3的,选char(3)3.2 对于较长的且不固定长度的属性,用varchar(36).

青语的博客 3707

Allegro File菜单实战指南:从导入网表到导出BOM的完整流程

PCB设计离不开对EDA软件菜单体系的深入理解。在Cadence Allegro中,File菜单是数据流转的中枢,它不仅是新建、打开、保存的基础入口,更是连接原理图与版图、设计与制造的关键桥梁。工程师常遇到的“导入网表报错”“导出BOM为空”“板框不闭合”等高频问题,大多源于对File菜单中Import与Export功能的理解不到位。从基础概念出发,先厘清Import(网表、DXF、IPC)与Export(BOM、ODB++、DXF)的工作原理,再结合版本兼容、封装库路径、单位设置等工程细节,即可构建完整的

weixin_32950759的博客 295

Android RIL(Radio Interface Layer)全面概述和知识要点(3万字长文)

在 Android 系统这个庞大而复杂的体系里,RIL(Radio Interface Layer,无线接口层)绝对是个关键角色。简单来讲,它就像一座桥梁,一头连着手机基带,另一头接着上层应用 ,在应用程序和调制解调器(Modem)之间搭建起了信息交流的通道。想象一下,咱们在手机上点击拨号按钮,或者编辑一条短信发送出去,这些操作产生的请求并不会直接到达手机的基带处理器。而是先由 RIL 接手,它把这些来自上层应用程序的请求,像拨号、发送短信这类,巧妙地转换成能够和基带处理器顺畅交互的命令。

大模型大数据攻城狮的专栏 1598

mysql使用varchar定义什么_mysql中varchar是什么类型

mysql中varchar是可变长度的类型,在varchar类型的数据列里,每个值只占用刚好够用的字节,再加上一个用来记录其长度的字节。如果字符串列最大长度比平均长度大很多的列,那么就可以使用varchar来储存。varchar类型(推荐教程:mysql教程)varchar是可变长度的类型:在varchar(M)类型的数据列里,每个值只占用刚好够用的字节,再加上一个用来记录其长度的字节(即总长度为...

weixin_26763955的博客 6516

【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测

【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1054

关于MySql中的varchar类型

今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下。 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532...

weixin_34415923的博客 1426

第六天 界面操作及美化(6.4 使用GUI 套件)

本文介绍如何使用VIPM工具安装DMC GUI套件:首先打开VIPM并连接网络,搜索"UI"找到DMCGUI套件后下载安装;安装完成后即可在VIPM中添加控件并预览效果。该方法同样适用于下载其他UI套件,用户可根据需求设计个性化界面。整个流程包括搜索、下载、安装和使用四个简单步骤,适合快速搭建GUI界面。

weixin_38637405的博客 407

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 894

mysql innodb varchar_mysql innodb引擎中varchar和char的区别

一. 行记录格式innodb在存储数据的时候是以行的形式存储的,版本相关,并且有固定的格式。可以通过下面的语句查询当前所用版本的行记录格式:show table status like '表名';在版本5.6中默认使用格式是Compact,而在8.0中默认的格式是Dynamic。本文描述的是Compact格式下的行记录。版本查询可以使用语句‘select version();’。Compact格式...

weixin_39665992的博客 256

【雕爷学编程】Arduino智能家居之DS18B20温度传感器

1、温度和湿度控制:通过连接温度传感器和湿度传感器,Arduino可以实时监测室内环境的温度和湿度,并通过控制空调、加热器或加湿器等执行器,实现室内温湿度的自动调节。设计用户友好的界面和操作方式,提供简单直观的控制和反馈机制,以及考虑用户习惯和需求,能够提升系统的整体用户体验。这意味着用户可以根据自己的需求和创意,自定义和定制智能家居系统的功能和外观。5、能源管理:Arduino可以与电能监测模块和智能插座等设备结合使用,实时监测家庭能源的使用情况,并通过自动控制电器设备的开关,实现能源的有效管理和节约。

雕爷学编程 2873

mysql数据类型varchar_MySQL中char与varchar数据类型选择原则

很多地方在分析char与varchar数据类型选择原则上,常常疏忽了存储引擎。事实上,我们应当根据选定的存储引擎,肯定如何选择适合的数据类型。char与varchar比较值char(3)实际存储字符长度varchar(3)实际存储字符长度”’ ‘3”1‘ab’‘ab ‘3‘ab’3‘abc’‘abc’3‘abc’4‘abcdefg’‘abc’3‘abc’4总结:从上表可以看出,char属于定长...

weixin_30127995的博客 262

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

mysql 保留两位小数 查询_MySQL(1)——数据类型的选择(一)

一、三个原则更小的通常更好:在符合条件的情况下,选择最小的数据类型更好。因为它们占用更少的磁盘、内存和 CPU 缓存。简单就好:简单的数据类型的操作通常需要更少的 CPU 周期。比如,使用整型存储 IP 地址。尽量避免 NULL:如果查询中包含可为 NULL 的列,对 MySQL来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更负责。不过一般将 NULL 的列改为非 NULL 性...

weixin_42181693的博客 1551

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Mysql数据类型与选择规则(mysql5.7)

本文主要基于Mysql 5及以上版本,分析了mysql常用的数据类型和选择依据!!

weixin_38597669的博客 5472

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

CHAR和VARCHAR使用原则

CHAR是固定长度,处理速度要比VARCHAR的要快,但是要浪费存储空间。随着MYSQL版本的不断升级,VARCHAR的处理速度也在提高,不同引擎对CHAR和VARCHAR的使用原则不同:   MyISAM:建议使用固定长度的数据列代替可变长度的   MEMORY:目前都使用固定长度进行存储,因此无论使用CHAR还是VARCHAR都没有关系,两者都做为CHAR类型进行处理。   Inn...

chenguangyun123的博客 406

mysql中char,varchar与text类型的区别和选用

转: mysql中char,varchar与text类型的区别和选用 关于char,varchar与text平时没有太在意,一般来说,可能现在大家都是用varchar。但是当要存储的内容比较大时,究竟是选择varchar还是text呢?不知道。。。。。。 text、char、varchar是数据在数据库中的存放策略问题,为了,合理应用存储空间,是数据库服务器数据...

weixin_38168559的博客 78

如何设计表选择合适的数据类型

在使⽤MySQL创建数据表时都会遇到⼀个问题,即如何为字段选择合适的数据类型。例如,创建⼀张员⼯表⽤来记录员⼯的信息,这时对员⼯的各种属性如何来进⾏ 定义?也许读者会想,这个问题很简单,每个字段可以使⽤很多种数据类型来定义,⽐如int、float、double、decimal等。其实正因为可选择的数据类型太多,才需要依据⼀些原则来“挑选”最适合的数据类型。 CHAR与VARCHAR CHAR和V...

飞少fly的博客 2764

深入浅出MySQL 选择合适的数据类型

选择合适的数据类型 ​ 在使用 MySQL 创建数据表时都会遇到一个问题,即如何为字段选择合适的数据类型。例如创建一个一张员工表用来记录员工的信息,这是对员工的各种属性如何来进行定义?也许读者会想,这个问题很简单,每个字段可以使用很多数据类型来定义,比如 int、float、double、decimal 等。其实正因为可选择的数据类型太多,才需要依据一些原则来“挑选”最适合的数据类型。本章将详细介绍字符、数值、日期等数据类型的一些选择原则。 CHAR 与 VARCHAR ​ CHAR 和 VARCHAR

19:30的博客 651

五、MySQL数据类型

1、数据类型选取的基本原则 MySQL支持多种数据类型,为了尽可能提高MySQL性能,需要选取合适的数据类型,通常来说,可以遵循以下原则: 选取更小的数据类型:使用可以满足数据存储需求的更小的数据类型,可以节约存储空间,减少对磁盘、内存、CPU缓存资源的占用。 尽量避免NULL:除非真的需要存储NULL值,否则应该将列都设置为NOT NULL。对允许为NULL的列,其索引会更加复杂。 2、字符串类型 varchar与char是MySQL中最基本的字符串类型。它们的具体实现与存储引擎相关,具体如下:

sun_lm的博客 818

mysql选择一条数据类型_MySQL选择数据类型

1)CHAR与VARCHAR从CHAR(4)和VARCHAR(4)列检索的值并不是总是相同,因为检索时从CHAR列删除了尾部的空格,以下说明该差别:mysql> create table vc(v varchar(4),c char(4));Query OK,0 rows affected (0.01sec)mysql> insert into vc values('ab','ab')...

weixin_36275231的博客 249

mysql 人名用什么类型_如何选择合适的MySQL数据类型

一、MySQL数据类型选择原则更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型。越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小。简单就好:简单的数据类型的操作通常需要更少的CPU周期。例如:整型比字符操作代价要小得多,因为字符集和校对规则(排序规则)使字符比整型比较更加复杂。尽量避免NULL:尽量制定列为NOT NULL,除非真的需要NULL类型的值。因为可能为NULL列使得索...

weixin_39562615的博客 1270

浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

最近一次的面试中,被面试官问到varchar和nvarchar的区别,脑海里记得是定长和可变长度的区别,但却没能说出来。后来,在网上找了下网友总结的区别。在这里做个备忘录: 一,SQL Server中char,varchar,nchar,nvarchar的区别(援引:https://www.cnblogs.com/limeiky/p/5313312.html) 1,定义:   ...

dl185249965的博客 99

8.1 第八章 选择合适的数据类型

在使用MySQL 创建数据表时都会遇到一个问题,如何为字段选择合适的数据类型。例  如,创建一张员工表用来记录员工的信息,这时对员工的各种属性如何来进行定义?也许大  家会想,这个问题很简单,每个字段可以使用很多种数据类型来定义,比如int、float、double、  decimal 等。其实正因为可选择的数据类型太多,才需要依据一些原则来“挑选”最适合的  数据类型。本章将详细介绍字符

LittleBeen 740

Mysql 选择优化数据类型

原则: 更小的通常更好(一般情况下,尽量使用最小的数据类型) 简单就好 尽量避免NULL 整数类型 实数类型 字符串类型   VARCHAR:可变长字符串。VARCHAR需要使用1或两个额外字节来记录字符串长度。所以VARCHAR类型最大长度不能超过  65535。(字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;字符类型若为utf8,每个字符最多占3个...

weixin_39032575的博客 1010
上一篇: MySQL帮助的使用
下一篇: 编译PHP-memcache扩展
我爱默小兜
博客等级 码龄14年 387粉丝 266原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值