首页 > 数据库 >数据库 char 与 varchar 的区别

数据库 char 与 varchar 的区别

时间:2024-03-25 22:57:32浏览次数:27  
标签:数据项 存储 varchar 数据库 char 长度 存储空间

 

  数据库内的 char 和 varchar都是用于存储字符串数据类型的。两者主要区别是存储方式和存储情况:

  1) 固定长度和可变长度

    char是固定长度的数据字符串类型,需指存储的字符长度;不论存储的字符长度是否达到了这个长度,都会占据指定存储的字符空间;例:定义一个char为10,存储一个 hi,也会占据10个字符的存储空间。

    varchar是可变长度的字符串数据类型,存储时指定后可根据数据的实际长度来而改变;例:定义一个varchar为10,存储一个 hi,只会占据两个字符长度;若存储的内容超过10个字符,可往大了改。

  2) 存储效率

    char:由于char是固定长度的,所以在存储和检索时效率可能会比较高,因为每个数据项都占用相同大小的存储空间,数据库引擎可以更容易地计算偏移量。

    varchar:varchar由于是可变长度的,存储和检索时可能会稍微慢一些,因为需要额外的长度信息,并且在内存中存储时可能会涉及到更多的指针操作。

  3) 存储空间的使用

    char:char在存储时会始终占用固定长度的存储空间,因此如果存储的数据项长度不足指定长度,可能会浪费一些存储空间。

    varchar:varchar在存储时会根据实际数据的长度来分配存储空间,因此可以更加节省存储空间,特别是对于存储长度变化较大的数据项。

  4) mysql数据库占据字节

    char: 0 到 255 字符。

    varchar: 0 到 65,535 字节。

 

  总结:当数据项长度固定且不会太长,可以考虑使用char;如果数据项长度不固定或长度较长,可以考虑使用varchar。

标签:数据项,存储,varchar,数据库,char,长度,存储空间
From: https://www.cnblogs.com/warmNest-llb/p/18095598

相关文章

  • MySQL 数据库的日志管理、备份与恢复
    一.数据库备份1.数据备份的重要性 备份的主要目的是灾难恢复。在生产环境中,数据的安全性至关重要。任何数据的丢失都可能产生严重的后果。造成数据丢失的原因:程序错误人为,操作错误,运算错误,磁盘故障灾难(如火灾、地震)和盗窃.容灾概念:容灾(DisasterRecovery,DR)......
  • 非关系型数据库的应用
    一、SQL的优缺点1,SQL的优点(1)标准化模式。虽然SQL数据库的标准化模式使它们变得僵硬且难以修改,但它确实具有一些优势。添加到数据库的所有数据都必须符合众所周知的由行和列组成的链接表模式。有些人可能会发现这种局限性,但当数据一致性、完整性、安全性和合规性非常重要时,它会......
  • 使用Docker搭建MySQL数据库服务
    简介在现代应用程序开发中,使用数据库是必不可少的。而Docker作为一种流行的容器化解决方案,可以使数据库的部署和管理变得更加简单和灵活。本文将介绍如何使用Docker搭建MySQL数据库服务,让你在本地环境中快速部署一个MySQL实例。第一步:拉取MySQL镜像dockerpullmysql:5.7第......
  • Pycharm服务器配置python解释器并结合内网穿透实现公网远程开发
    ......
  • react 中echarts-for-react使用resize解决图表自适应问题
     importReact,{PureComponent}from"react";importReactEchartsfrom'echarts-for-react';import{useEventListener}from'ahooks';useEventListener('resize',()=>{ref?.current?.getEch......
  • Linux架构26 playbook实战, 安装数据库, 网站迁移, ansible变量
    Ansibleplaybook实战1.基础准备#1.安装ansible[root@m01~]#yuminstall-yansible#2.配置ansible[root@m01~]#vim/etc/ansible/ansible.cfghost_key_checking=False#这个解开注释#3.配置主机清单[root@m01~]#vim/etc/ansible/hosts[web_group]we......
  • Alibaba Cloud Linux 安装 PostgreSQL 数据库
    https://blog.csdn.net/simpledate/article/details/123365889?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-123365889-blog-135289834.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_so......
  • macbook pycharm:macbook Configure Python Interpreter
     新建或新导入python项目,提示:macbookConfigurePythonInterpreter需要配置PythonInterpreter 找到python3whichpython3 配置PythonInterpreterPycharm-preferences-PythonInterpretershowall:选择已有的(不赘述)oradd新的AddExistingenvironment选择 /u......
  • 数据库读写分离分案
    环境:MySQL主从数据库。如需要搭建可参考上一篇文章:MySQL主从数据库简单搭建数据库使用主从可确保数据一致性,示例是基于一个完整的项目之上做了一些修改,为测试效果直接连接了两个非主从配置的数据库,其中只有测试的数据表内容不同其余内容全部相同。方案参考:MySQL读写分离的......
  • 达梦数据库如何解除主从关系
    环境:OS:Centos7DB:DMV8 1.停掉dmwatcher并删除服务[root@host02root]#systemctlstopDmWatcherServiceGRP1[root@host02root]#cd/dmdbms/product/script/root[root@host02root]#./dm_service_uninstaller.sh-nDmWatcherServiceGRP1 2.删除实时归档[dmdba@host......