首页
学习
活动
专区
圈层
工具
发布

小白学习MySQL - varchar类型字段为什么经常定义成255?

很多时候我们看到一些表字符串类型的字段定义为varchar(255),开始以为varchar只能定义为255这个长度值,其实不然。...官方文档所说,varchar有效的最大长度取决于行的容量,以及用的字符集,整行的所有列的定义长度不能超过65535字节(bytes),text、blob等大字段类型除外, P.S. https://dev.mysql.com...一般情况下,我们用的是InnoDB引擎,utf8则是常用字符集,因此varchar类型字段定义为255比较合适。...但实际上,varchar(255)并不是最优的字符定义长度,究竟定成多少,还是要根据实际需求来决定,例如这个字段我就不需要创建索引,定义超过255,是可以的,只能说255是常规情况下较少出错的一个值。...TIMESTAMP类型字段非空和默认值属性的影响》 《小白学习MySQL - 聊聊数据备份的重要性》 《小白学习MySQL - InnoDB支持optimize table?》

3.8K10

小白学习MySQL - varchar类型字段为什么经常定义成255?

很多时候我们看到一些表字符串类型的字段定义为varchar(255),开始以为varchar只能定义为255这个长度值,其实不然。...官方文档所说,varchar有效的最大长度取决于行的容量,以及用的字符集,整行的所有列的定义长度不能超过65535字节(bytes),text、blob等大字段类型除外, P.S. https://dev.mysql.com.../doc/refman/5.7/en/char.html 《小白学习MySQL - 变通创建索引的案例一则》提到了, InnoDB,如果需要建索引,就不能超过767bytes,utf8编码,255*3...一般情况下,我们用的是InnoDB引擎,utf8则是常用字符集,因此varchar类型字段定义为255比较合适。...但实际上,varchar(255)并不是最优的字符定义长度,究竟定成多少,还是要根据实际需求来决定,例如这个字段我就不需要创建索引,定义超过255,是可以的,只能说255是常规情况下较少出错的一个值。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    电商系统SPU和SKU

    这是电商系统两个非常重要的概念,如果你能够理解这里面的关系网,会对你的代码思路更加清晰!...数据库设计 pms_category【商品三级分类】 代码 名称 数据类型(MYSQL) 主键 内容示例 cat_id 分类id BIGINT(19) √ 150 name 分类名称 CHAR(50)...主键 内容示例 sku_id skuId BIGINT(19) √ 222 spu_id spuId BIGINT(19) 110 sku_name sku名称 VARCHAR(255) 小米11...19) 11111111 sku_title 标题 VARCHAR(255) 小米11 8G price 价格 DECIMAL(18,4) 3999 sale_count 销量 BIGINT(19...首先我定义了一个三级分类,id为150,叫做手机。 定义两个属性,id为120的是上市年份,为基本属性;210的是库存,为销售属性。 定义一个基础属性分组,id为130,名为主体,归在手机分类。

    3.6K60

    mysql架构sql基础

    ,报error错误。...sql_mode=''; 库表属性 库 库名 属性: 字符集 校对规则 表空间加密 表 表名 属性: 存储引擎 字符集 校对规则 表空间加密 列 列名 列属性 数据行 字符集 把存储的数据按照一种特定的编码存储到数据库中...255个字符 就开销两个字符 char和varchar‘区别 1char一定会使用指定的空间,varchar是根据数据来定空间的 2char的插入数据效率理论上比varchar高 varchar是需要通过后面的记录数来计算使用哪一种类型...(不同的数据类型是否会影响查询效率) 如果数据长度超过255个字符(大字段) 不论是否固定长度 都会使用text(对于b树索引不支持) 不在使用char和varchar 使用varchar 行格式 compact...个以内,那么一个字节就够了 如果超过255但是小于65535那么系统采用两个字节保存 时间类型 datetime 占用8字节 范围1000-01-01 00:00:00/9999-12-31 23:59

    1.4K31

    让MyBatis Generator产生的代码支持分页

    select * from t_user limit 0 , 2 在MySQL系统中,如果要完成一个分页,我们需要指定limit的值,也就是需要指定两个数,第一个指定从什么地方开始(示例中为0);另一个指定需要获取多少条数据...问题转化 如果要使得产生的自动产生的代码具备分页功能的话,那么,Mapper对应的XML中,select语句需要多增加两个属性值,比如: limitStart (指定从什么位置开始查找) limitSize...(150) NOT NULL, `content` text NOT NULL, `brief_intro` varchar(255) DEFAULT NULL, `pic_url` varchar...(255) DEFAULT NULL, `news_from` varchar(100) DEFAULT NULL, `news_author` varchar(50) DEFAULT NULL..., `news_url` varchar(255) DEFAULT NULL, `keywords` varchar(150) DEFAULT NULL, `meta_desc` varchar

    4.8K20

    MySQL支持的数据类型

    id2中显示了正确的数值,并没有受宽度限制影响 整数类型有一个属性:AUTO_INCREMENT。在需要产生唯一标识符或顺序值时,可利用此属性,这个属性只用于整数类型。...CHAR和VARCHAR类型 CHAR和VARCHAR很类似,都用来保存MySQL中较短的字符串,二者的主要区别在于存储方式的不同:CHAR列的长度固定为创建表时生命的长度,长度可以为从0~255的任何值...在检索的时候,CHAR列删除了尾部的空格,而VARCHAR则保留这些空格。 创建测试表vc,并定义两个字段“v VARCHAR(4)”和“c CHAR(4)”: ?...VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则 使用两个字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。...由于是可变长度,因此实际存储的时候是实际字符串再加上一个记录 字符串长度的字节(如果超过255则需要两个字节)。如果分配给CHAR或VARCHAR列的值超过列的最大长度,则对值进行裁剪以使其适合。

    4K30

    MySQL 数据类型

    ---- 二、字符串 MySQL数据类型 含义 char(n) 固定长度最多255个字符 varchar(n) 可变长度最多65535个字符 tinytext 短文本字符串最多255个字符 text 长文本数据最多...② UTF-8编码中,一个英文字符占一个字节,一个中文占三个字节 ③ Unicode编码中,一个英文字符占两个字节,一个中文占两个字节 char 和 varchar 1. char(n) 若存入字符数小于...>255),所以varchar(5),存入3个字符将占用4个字节的物理空间。...varchar是存入的实际字符数+1个字节(n255)或2个字节(n>255),text是实际字符数+2个字节。...总之,字符长度经常变化用varchar,固定长度用char, 超过255字符用varchar和text,能用varchar不用text ---- 三、日期时间类型 数据类型 字节 含义 date 4字节

    2.4K20

    Java高频面试之Mysql篇

    目的: 1.降级冗余 第一范式:列不可再分 有一个学生表,假设有两个字段分别是 name,address,而address内容写的是:江苏省南京市浦口区xxx街道xxx小区。...结论 char:固定长度,不够会在末尾补空格,取出时删除所有末尾的空格,所以取出时会丢失末尾的空格,可能会浪费空间,查询效率比varchar高,单位字符,最多存255个字符,和字符集无关. varchar...以下为mysql5.7,存储引擎innodb,utf8字符集 (65535-3)/3=21844 21844-255=21589 因为255也要占用额外的空间存储长度和null标识,实际需要255*3+...日志分析:MySQL提供了多种类型的日志记录,如错误日志、查询日志、慢查询日志等。通过分析这些日志可以找出可能的问题原因。...错误日志可以查看是否有任何错误发生,查询日志可以用来检查具体的查询语句,慢查询日志可以用来找出执行时间超过某个阈值的查询。

    54210

    MySQL 中 blob 和 text 数据类型详解

    0 - 16 772 150字节 较大文本数据 LONGTEXT 0 - 4 294 967 295字节 极大文本数据 不过在日常场景中,存储字符串还是尽量用 varchar ,只有要存储长文本数据时...varchar 可直接创建索引,text 字段创建索引要指定前多少个字符。 text 类型检索效率比 varchar 要低。...例如 tinytext 最多存储 255 个字节而不是 255 个字符,在 utf8 字符集下,一个英文字母或数字占用一个字节,而一个中文汉字占用三个字节。...也就是说 tinytext 最多存储 255/3=85 个汉字,text 最多存储 65535/3=21845 个汉字。...而 varchar(M) 中的 M 指的是字符数,一个英文、数字、汉字都是占用一个字符,即 tinytext 可存储的大小并不比 varchar(255) 多。

    8.9K30

    varchar有最大长度限制吗

    先说结论,mysql 中的 varchar 是有最大长度限制的,这个值是 65535 个字节。 varchar(100),这个 100 的单位是啥,这个单位其实在不同版本中是不一样的。...另外 char 也是有最大长度限制的,最大长度为 255, 即 char 类型最多只能保存 255 个字符,char(256) 这都是错误的写法,可以看下面的例子。...##创建一个表,同时声明address字段长度为256会报错,最大为255 mysql> create table test2 ( address char(256) ); ERROR 1074 (42000...最后再看一个综合例子,我们创建一个表,采用 UTF8 字符集,添加两个非空字段,分别为 char 和 varchar 类型,char 类型长度给定为 255。...(0.02 sec) 好了,关于 varchar 的最大长度问题就聊到这了,文中如有错误,欢迎大家批评指出,更欢迎大家交流讨论,如果文章对你有帮助,点个在看表示对我的支持哈,感谢。

    19.6K21

    数据结构造神计划第三天---数据类型

    一、常用数据类型分类 在面向对象软件开发的过程中,通常会先进行需求分析从而得到类和属性,类是面向对象中的概念,对应到数据库中的概念就是实体,类中的属性对应实体中的属性。...如果要定义实体的属性,就要为属性命名并指定合适的数据类型。与其他编程语言类似,SQL中规定了用于描述属性的数据类型。...M 表示以字符为单位的最大列长度,取值范围 0 ~ 65,535 (在所有列中共享),有效长度取决于实际字符数和使用的字符集,并且用额外的⼀或两个字节记录实际使用的字节数,当实际字节数不超过255个字节用...⼀个字节记录长度,超过255个字节时,使用两个字节记录长度,获取列的值时不会从尾部删除空格,插入数据时会删除超出长度的空格。...mysql> CREATE TABLE vc (v VARCHAR(4), c CHAR(4)); Query OK, 0 rows affected (0.01 sec) mysql> INSERT

    27910
    领券